Merge pull request '4223-claim_observations' (#1012) from 4223-claim_observations into dev
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
Reviewed-on: #1012 Reviewed-by: Javi Gallego <jgallego@verdnatura.es>
This commit is contained in:
commit
f9dd4f19d0
|
@ -1,4 +1,6 @@
|
|||
INSERT INTO `salix`.`ACL` (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES
|
||||
('ClaimObservation','*','WRITE','ALLOW','ROLE','salesPerson'),
|
||||
('ClaimObservation','*','READ','ALLOW','ROLE','salesPerson'),
|
||||
('Client','setPassword','WRITE','ALLOW','ROLE','salesPerson'),
|
||||
('Client','updateUser','WRITE','ALLOW','ROLE','salesPerson');
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
CREATE TABLE `vn`.`claimObservation` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`claimFk` int(10) unsigned NOT NULL,
|
||||
`workerFk` int(10) unsigned DEFAULT NULL,
|
||||
`text` text COLLATE utf8_unicode_ci NOT NULL,
|
||||
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `worker_key` (`workerFk`),
|
||||
KEY `claim_key` (`claimFk`),
|
||||
KEY `claimObservation_created_IDX` (`created`) USING BTREE,
|
||||
CONSTRAINT `claimObservation_ibfk_1` FOREIGN KEY (`claimFk`) REFERENCES `vn`.`claim` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `claimObservation_ibfk_2` FOREIGN KEY (`workerFk`) REFERENCES `vn`.`worker` (`id`) ON UPDATE CASCADE
|
||||
) COMMENT='Todas las observaciones referentes a una reclamación'
|
|
@ -0,0 +1,2 @@
|
|||
INSERT INTO `vn`.`claimObservation` (`claimFk`, `text`, `created`)
|
||||
SELECT `id`, `observation`, `created` FROM `vn`.`claim`
|
|
@ -1729,12 +1729,19 @@ INSERT INTO `vn`.`claimState`(`id`, `code`, `description`, `roleFk`, `priority`,
|
|||
( 6, 'mana', 'Mana', 1, 4, 0),
|
||||
( 7, 'lack', 'Faltas', 1, 2, 0);
|
||||
|
||||
INSERT INTO `vn`.`claim`(`id`, `ticketCreated`, `claimStateFk`, `observation`, `clientFk`, `workerFk`, `responsibility`, `isChargedToMana`, `created`, `packages`)
|
||||
INSERT INTO `vn`.`claim`(`id`, `ticketCreated`, `claimStateFk`, `clientFk`, `workerFk`, `responsibility`, `isChargedToMana`, `created`, `packages`)
|
||||
VALUES
|
||||
(1, util.VN_CURDATE(), 1, 'Cu nam labores lobortis definiebas, ei aliquyam salutatus persequeris quo, cum eu nemore fierent dissentiunt. Per vero dolor id, vide democritum scribentur eu vim, pri erroribus temporibus ex.', 1101, 18, 3, 0, util.VN_CURDATE(), 0),
|
||||
(2, util.VN_CURDATE(), 2, 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.', 1101, 18, 3, 0, util.VN_CURDATE(), 1),
|
||||
(3, util.VN_CURDATE(), 3, 'An vim commodo dolorem volutpat, cu expetendis voluptatum usu, et mutat consul adversarium his. His natum numquam legimus an, diam fabulas mei ut. Melius fabellas sadipscing vel id. Partem diceret mandamus mea ne, has te tempor nostrud. Aeque nostro eum no.', 1101, 18, 1, 1, util.VN_CURDATE(), 5),
|
||||
(4, util.VN_CURDATE(), 3, 'Wisi forensibus mnesarchum in cum. Per id impetus abhorreant, his no magna definiebas, inani rationibus in quo. Ut vidisse dolores est, ut quis nominavi mel. Ad pri quod apeirian concludaturque.', 1104, 18, 5, 0, util.VN_CURDATE(), 10);
|
||||
(1, util.VN_CURDATE(), 1, 1101, 18, 3, 0, util.VN_CURDATE(), 0),
|
||||
(2, util.VN_CURDATE(), 2, 1101, 18, 3, 0, util.VN_CURDATE(), 1),
|
||||
(3, util.VN_CURDATE(), 3, 1101, 18, 1, 1, util.VN_CURDATE(), 5),
|
||||
(4, util.VN_CURDATE(), 3, 1104, 18, 5, 0, util.VN_CURDATE(), 10);
|
||||
|
||||
INSERT INTO `vn`.`claimObservation` (`claimFk`, `workerFk`, `text`, `created`)
|
||||
VALUES
|
||||
(1, 18, 'Cu nam labores lobortis definiebas, ei aliquyam salutatus persequeris quo, cum eu nemore fierent dissentiunt. Per vero dolor id, vide democritum scribentur eu vim, pri erroribus temporibus ex.', util.VN_CURDATE()),
|
||||
(2, 18, 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.', util.VN_CURDATE()),
|
||||
(3, 18, 'An vim commodo dolorem volutpat, cu expetendis voluptatum usu, et mutat consul adversarium his. His natum numquam legimus an, diam fabulas mei ut. Melius fabellas sadipscing vel id. Partem diceret mandamus mea ne, has te tempor nostrud. Aeque nostro eum no.', util.VN_CURDATE()),
|
||||
(4, 18, 'Wisi forensibus mnesarchum in cum. Per id impetus abhorreant, his no magna definiebas, inani rationibus in quo. Ut vidisse dolores est, ut quis nominavi mel. Ad pri quod apeirian concludaturque.', util.VN_CURDATE());
|
||||
|
||||
INSERT INTO `vn`.`claimBeginning`(`id`, `claimFk`, `saleFk`, `quantity`)
|
||||
VALUES
|
||||
|
|
|
@ -730,7 +730,7 @@ export default {
|
|||
claimSummary: {
|
||||
header: 'vn-claim-summary > vn-card > h5',
|
||||
state: 'vn-claim-summary vn-label-value[label="State"] > section > span',
|
||||
observation: 'vn-claim-summary vn-textarea[ng-model="$ctrl.summary.claim.observation"]',
|
||||
observation: 'vn-claim-summary vn-horizontal.text',
|
||||
firstSaleItemId: 'vn-claim-summary vn-horizontal > vn-auto:nth-child(5) vn-table > div > vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(1) > span',
|
||||
firstSaleDescriptorImage: '.vn-popover.shown vn-item-descriptor img',
|
||||
itemDescriptorPopover: '.vn-popover.shown vn-item-descriptor',
|
||||
|
@ -742,7 +742,6 @@ export default {
|
|||
},
|
||||
claimBasicData: {
|
||||
claimState: 'vn-claim-basic-data vn-autocomplete[ng-model="$ctrl.claim.claimStateFk"]',
|
||||
observation: 'vn-textarea[ng-model="$ctrl.claim.observation"]',
|
||||
packages: 'vn-input-number[ng-model="$ctrl.claim.packages"]',
|
||||
hasToPickUpCheckbox: 'vn-claim-basic-data vn-check[ng-model="$ctrl.claim.hasToPickUp"]',
|
||||
saveButton: `button[type=submit]`
|
||||
|
@ -772,6 +771,12 @@ export default {
|
|||
secondClaimRedelivery: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[ng-model="claimDevelopment.claimRedeliveryFk"]',
|
||||
saveDevelopmentButton: 'button[type=submit]'
|
||||
},
|
||||
claimNote: {
|
||||
addNoteFloatButton: 'vn-float-button',
|
||||
note: 'vn-textarea[ng-model="$ctrl.note.text"]',
|
||||
saveButton: 'button[type=submit]',
|
||||
firstNoteText: 'vn-claim-note .text'
|
||||
},
|
||||
claimAction: {
|
||||
importClaimButton: 'vn-claim-action vn-button[label="Import claim"]',
|
||||
anyLine: 'vn-claim-action vn-tbody > vn-tr',
|
||||
|
|
|
@ -22,8 +22,6 @@ describe('Claim edit basic data path', () => {
|
|||
|
||||
it(`should edit claim state and observation fields`, async() => {
|
||||
await page.autocompleteSearch(selectors.claimBasicData.claimState, 'Gestionado');
|
||||
await page.clearTextarea(selectors.claimBasicData.observation);
|
||||
await page.write(selectors.claimBasicData.observation, 'edited observation');
|
||||
await page.clearInput(selectors.claimBasicData.packages);
|
||||
await page.write(selectors.claimBasicData.packages, '2');
|
||||
await page.waitToClick(selectors.claimBasicData.saveButton);
|
||||
|
@ -59,13 +57,6 @@ describe('Claim edit basic data path', () => {
|
|||
expect(hasToPickUpCheckbox).toBe('checked');
|
||||
});
|
||||
|
||||
it('should confirm the claim observation was edited', async() => {
|
||||
const result = await page
|
||||
.waitToGetProperty(selectors.claimBasicData.observation, 'value');
|
||||
|
||||
expect(result).toEqual('edited observation');
|
||||
});
|
||||
|
||||
it('should confirm the claim packages was edited', async() => {
|
||||
const result = await page
|
||||
.waitToGetProperty(selectors.claimBasicData.packages, 'value');
|
||||
|
@ -75,8 +66,6 @@ describe('Claim edit basic data path', () => {
|
|||
|
||||
it(`should edit the claim to leave it untainted`, async() => {
|
||||
await page.autocompleteSearch(selectors.claimBasicData.claimState, 'Pendiente');
|
||||
await page.clearTextarea(selectors.claimBasicData.observation);
|
||||
await page.write(selectors.claimBasicData.observation, 'Observation one');
|
||||
await page.clearInput(selectors.claimBasicData.packages);
|
||||
await page.write(selectors.claimBasicData.packages, '0');
|
||||
await page.waitToClick(selectors.claimBasicData.saveButton);
|
||||
|
|
|
@ -37,7 +37,7 @@ describe('Claim summary path', () => {
|
|||
});
|
||||
|
||||
it('should display the observation', async() => {
|
||||
const result = await page.waitToGetProperty(selectors.claimSummary.observation, 'value');
|
||||
const result = await page.waitToGetProperty(selectors.claimSummary.observation, 'innerText');
|
||||
|
||||
expect(result).toContain('Wisi forensibus mnesarchum in cum. Per id impetus abhorreant');
|
||||
});
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
import selectors from '../../helpers/selectors';
|
||||
import getBrowser from '../../helpers/puppeteer';
|
||||
|
||||
describe('Claim Add note path', () => {
|
||||
let browser;
|
||||
let page;
|
||||
beforeAll(async() => {
|
||||
browser = await getBrowser();
|
||||
page = browser.page;
|
||||
await page.loginAndModule('salesPerson', 'claim');
|
||||
await page.accessToSearchResult('2');
|
||||
await page.accessToSection('claim.card.note.index');
|
||||
});
|
||||
|
||||
afterAll(async() => {
|
||||
await browser.close();
|
||||
});
|
||||
|
||||
it(`should reach the claim note index`, async() => {
|
||||
await page.waitForState('claim.card.note.index');
|
||||
});
|
||||
|
||||
it(`should click on the add new note button`, async() => {
|
||||
await page.waitToClick(selectors.claimNote.addNoteFloatButton);
|
||||
await page.waitForState('claim.card.note.create');
|
||||
});
|
||||
|
||||
it(`should create a new note`, async() => {
|
||||
await page.waitForSelector(selectors.claimNote.note);
|
||||
await page.type(`${selectors.claimNote.note} textarea`, 'The delivery was unsuccessful');
|
||||
await page.waitToClick(selectors.claimNote.saveButton);
|
||||
const message = await page.waitForSnackbar();
|
||||
|
||||
expect(message.text).toContain('Data saved!');
|
||||
});
|
||||
|
||||
it(`should redirect back to the claim notes page`, async() => {
|
||||
await page.waitForState('claim.card.note.index');
|
||||
});
|
||||
|
||||
it('should confirm the note was created', async() => {
|
||||
const result = await page.waitToGetProperty(selectors.claimNote.firstNoteText, 'innerText');
|
||||
|
||||
expect(result).toEqual('The delivery was unsuccessful');
|
||||
});
|
||||
});
|
|
@ -84,6 +84,20 @@ module.exports = Self => {
|
|||
};
|
||||
promises.push(Self.app.models.ClaimBeginning.find(filter, myOptions));
|
||||
|
||||
// Claim observations
|
||||
filter = {
|
||||
where: {claimFk: id},
|
||||
include: [
|
||||
{
|
||||
relation: 'worker',
|
||||
scope: {
|
||||
fields: ['id', 'firstName', 'lastName']
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
promises.push(Self.app.models.ClaimObservation.find(filter, myOptions));
|
||||
|
||||
// Claim developments
|
||||
filter = {
|
||||
where: {claimFk: id},
|
||||
|
@ -138,8 +152,9 @@ module.exports = Self => {
|
|||
summary.isEditable = await Self.isEditable(ctx, id, myOptions);
|
||||
[summary.claim] = res[0];
|
||||
summary.salesClaimed = res[1];
|
||||
summary.developments = res[2];
|
||||
summary.actions = res[3];
|
||||
summary.observations = res[2];
|
||||
summary.developments = res[3];
|
||||
summary.actions = res[4];
|
||||
|
||||
return summary;
|
||||
};
|
||||
|
|
|
@ -19,6 +19,7 @@ describe('claim getSummary()', () => {
|
|||
expect(keys).toContain('claim');
|
||||
expect(keys).toContain('salesClaimed');
|
||||
expect(keys).toContain('developments');
|
||||
expect(keys).toContain('observations');
|
||||
expect(keys).toContain('actions');
|
||||
expect(keys).toContain('isEditable');
|
||||
|
||||
|
|
|
@ -38,6 +38,9 @@
|
|||
"ClaimLog": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"ClaimObservation": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"ClaimContainer": {
|
||||
"dataSource": "claimStorage"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"name": "ClaimObservation",
|
||||
"base": "Loggable",
|
||||
"log": {
|
||||
"model": "ClaimLog",
|
||||
"relation": "claim"
|
||||
},
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "claimObservation"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"id": true,
|
||||
"description": "Identifier"
|
||||
},
|
||||
"claimFk": {
|
||||
"type": "number",
|
||||
"required": true
|
||||
},
|
||||
"text": {
|
||||
"type": "string",
|
||||
"required": true
|
||||
},
|
||||
"created": {
|
||||
"type": "date"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"worker": {
|
||||
"type": "belongsTo",
|
||||
"model": "Worker",
|
||||
"foreignKey": "workerFk"
|
||||
},
|
||||
"claim": {
|
||||
"type": "belongsTo",
|
||||
"model": "Claim",
|
||||
"foreignKey": "claimFk"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -51,15 +51,6 @@
|
|||
label="Packages received"
|
||||
ng-model="$ctrl.claim.packages">
|
||||
</vn-input-number>
|
||||
</vn-horizontal>
|
||||
<vn-horizontal>
|
||||
<vn-textarea
|
||||
label="Observation"
|
||||
ng-model="$ctrl.claim.observation"
|
||||
rule>
|
||||
</vn-textarea>
|
||||
</vn-horizontal>
|
||||
<vn-horizontal>
|
||||
<vn-check
|
||||
class="vn-mr-md"
|
||||
label="Pick up"
|
||||
|
|
|
@ -12,3 +12,5 @@ import './search-panel';
|
|||
import './summary';
|
||||
import './photos';
|
||||
import './log';
|
||||
import './note/index';
|
||||
import './note/create';
|
||||
|
|
|
@ -6,6 +6,7 @@ Client Id: Id cliente
|
|||
Claimed ticket: Ticket reclamado
|
||||
Delete claim: Eliminar reclamación
|
||||
Observation: Observación
|
||||
Observations: Observaciones
|
||||
Responsible: Responsable
|
||||
Remove sale: Eliminar linea
|
||||
Claim Id: Id reclamación
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
<vn-watcher
|
||||
vn-id="watcher"
|
||||
url="claimObservations"
|
||||
id-field="id"
|
||||
data="$ctrl.note"
|
||||
insert-mode="true"
|
||||
form="form">
|
||||
</vn-watcher>
|
||||
<form name="form" ng-submit="watcher.submitGo('claim.card.note.index')" class="vn-w-md">
|
||||
<vn-card class="vn-pa-lg">
|
||||
<vn-horizontal>
|
||||
<vn-textarea
|
||||
vn-one
|
||||
label="Note"
|
||||
ng-model="$ctrl.note.text"
|
||||
vn-focus>
|
||||
</vn-textarea>
|
||||
</vn-horizontal>
|
||||
</vn-card>
|
||||
<vn-button-bar>
|
||||
<vn-submit
|
||||
ng-if="watcher.dataChanged()"
|
||||
label="Save">
|
||||
</vn-submit>
|
||||
<vn-button
|
||||
ng-click="$ctrl.cancel()"
|
||||
label="Cancel">
|
||||
</vn-button>
|
||||
</vn-button-bar>
|
||||
</form>
|
|
@ -0,0 +1,22 @@
|
|||
import ngModule from '../../module';
|
||||
import Section from 'salix/components/section';
|
||||
|
||||
export default class Controller extends Section {
|
||||
constructor($element, $) {
|
||||
super($element, $);
|
||||
this.note = {
|
||||
claimFk: parseInt(this.$params.id),
|
||||
workerFk: window.localStorage.currentUserWorkerId,
|
||||
text: null
|
||||
};
|
||||
}
|
||||
|
||||
cancel() {
|
||||
this.$state.go('claim.card.note.index', {id: this.$params.id});
|
||||
}
|
||||
}
|
||||
|
||||
ngModule.vnComponent('vnClaimNoteCreate', {
|
||||
template: require('./index.html'),
|
||||
controller: Controller
|
||||
});
|
|
@ -0,0 +1,32 @@
|
|||
<vn-crud-model
|
||||
vn-id="model"
|
||||
url="ClaimObservations"
|
||||
filter="$ctrl.filter"
|
||||
where="{claimFk: $ctrl.$params.id}"
|
||||
include="$ctrl.include"
|
||||
data="notes"
|
||||
auto-load="true">
|
||||
</vn-crud-model>
|
||||
<vn-data-viewer
|
||||
model="model"
|
||||
class="vn-w-md">
|
||||
<vn-card class="vn-pa-md">
|
||||
<div
|
||||
ng-repeat="note in notes"
|
||||
class="note vn-pa-sm border-solid border-radius vn-mb-md">
|
||||
<vn-horizontal class="vn-mb-sm" style="color: #666">
|
||||
<vn-one>{{::note.worker.firstName}} {{::note.worker.lastName}}</vn-one>
|
||||
<vn-auto>{{::note.created | date:'dd/MM/yyyy HH:mm'}}</vn-auto>
|
||||
</vn-horizontal>
|
||||
<vn-horizontal class="text">
|
||||
{{::note.text}}
|
||||
</vn-horizontal>
|
||||
</div>
|
||||
</vn-card>
|
||||
</vn-data-viewer>
|
||||
<a vn-tooltip="New note"
|
||||
ui-sref="claim.card.note.create({id: $ctrl.$params.id})"
|
||||
vn-bind="+"
|
||||
fixed-bottom-right>
|
||||
<vn-float-button icon="add"></vn-float-button>
|
||||
</a>
|
|
@ -0,0 +1,25 @@
|
|||
import ngModule from '../../module';
|
||||
import Section from 'salix/components/section';
|
||||
import './style.scss';
|
||||
|
||||
export default class Controller extends Section {
|
||||
constructor($element, $) {
|
||||
super($element, $);
|
||||
this.filter = {
|
||||
order: 'created DESC',
|
||||
};
|
||||
this.include = {
|
||||
relation: 'worker',
|
||||
scope: {
|
||||
fields: ['id', 'firstName', 'lastName']
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Controller.$inject = ['$element', '$scope'];
|
||||
|
||||
ngModule.vnComponent('vnClaimNote', {
|
||||
template: require('./index.html'),
|
||||
controller: Controller,
|
||||
});
|
|
@ -0,0 +1,5 @@
|
|||
vn-client-note {
|
||||
.note:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
|
@ -12,6 +12,7 @@
|
|||
{"state": "claim.card.basicData", "icon": "settings"},
|
||||
{"state": "claim.card.detail", "icon": "icon-details"},
|
||||
{"state": "claim.card.photos", "icon": "image"},
|
||||
{"state": "claim.card.note.index", "icon": "insert_drive_file"},
|
||||
{"state": "claim.card.development", "icon": "icon-traceability"},
|
||||
{"state": "claim.card.action", "icon": "icon-actions"},
|
||||
{"state": "claim.card.log", "icon": "history"}
|
||||
|
@ -27,17 +28,20 @@
|
|||
"abstract": true,
|
||||
"component": "vn-claim",
|
||||
"description": "Claims"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/index?q",
|
||||
"state": "claim.index",
|
||||
"component": "vn-claim-index",
|
||||
"description": "Claims"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/:id",
|
||||
"state": "claim.card",
|
||||
"abstract": true,
|
||||
"component": "vn-claim-card"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/summary",
|
||||
"state": "claim.card.summary",
|
||||
"component": "vn-claim-summary",
|
||||
|
@ -45,7 +49,8 @@
|
|||
"params": {
|
||||
"claim": "$ctrl.claim"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/basic-data",
|
||||
"state": "claim.card.basicData",
|
||||
"component": "vn-claim-basic-data",
|
||||
|
@ -54,7 +59,8 @@
|
|||
"claim": "$ctrl.claim"
|
||||
},
|
||||
"acl": ["salesPerson"]
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/detail",
|
||||
"state": "claim.card.detail",
|
||||
"component": "vn-claim-detail",
|
||||
|
@ -63,7 +69,32 @@
|
|||
"claim": "$ctrl.claim"
|
||||
},
|
||||
"acl": ["salesPerson"]
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/note",
|
||||
"state": "claim.card.note",
|
||||
"component": "ui-view",
|
||||
"abstract": true,
|
||||
"acl": ["salesPerson"]
|
||||
},
|
||||
{
|
||||
"url": "/index",
|
||||
"state": "claim.card.note.index",
|
||||
"component": "vn-claim-note",
|
||||
"description": "Notes",
|
||||
"params": {
|
||||
"claim": "$ctrl.claim"
|
||||
},
|
||||
"acl": ["salesPerson"]
|
||||
},
|
||||
{
|
||||
"url": "/create",
|
||||
"state": "claim.card.note.create",
|
||||
"component": "vn-claim-note-create",
|
||||
"description": "New note",
|
||||
"acl": ["salesPerson"]
|
||||
},
|
||||
{
|
||||
"url": "/development",
|
||||
"state": "claim.card.development",
|
||||
"component": "vn-claim-development",
|
||||
|
@ -72,7 +103,8 @@
|
|||
"claim": "$ctrl.claim"
|
||||
},
|
||||
"acl": ["claimManager"]
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/action",
|
||||
"state": "claim.card.action",
|
||||
"component": "vn-claim-action",
|
||||
|
@ -81,7 +113,8 @@
|
|||
"claim": "$ctrl.claim"
|
||||
},
|
||||
"acl": ["claimManager"]
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/photos",
|
||||
"state": "claim.card.photos",
|
||||
"component": "vn-claim-photos",
|
||||
|
@ -89,7 +122,8 @@
|
|||
"params": {
|
||||
"claim": "$ctrl.claim"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url" : "/log",
|
||||
"state": "claim.card.log",
|
||||
"component": "vn-claim-log",
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
<vn-crud-model vn-id="model"
|
||||
<vn-crud-model
|
||||
vn-id="model"
|
||||
url="ClaimDms"
|
||||
filter="::$ctrl.filter"
|
||||
data="photos">
|
||||
</vn-crud-model>
|
||||
<vn-card class="summary">
|
||||
<h5>
|
||||
<a
|
||||
<a
|
||||
ng-if="::$ctrl.summary.claim.id"
|
||||
vn-tooltip="Go to the claim"
|
||||
ui-sref="claim.card.summary({id: {{::$ctrl.summary.claim.id}}})"
|
||||
|
@ -13,7 +14,7 @@
|
|||
<vn-icon-button icon="launch"></vn-icon-button>
|
||||
</a>
|
||||
<span>{{::$ctrl.summary.claim.id}} - {{::$ctrl.summary.claim.client.name}}</span>
|
||||
<vn-button-menu
|
||||
<vn-button-menu
|
||||
disabled="!$ctrl.summary.isEditable"
|
||||
class="message"
|
||||
label="Change state"
|
||||
|
@ -26,30 +27,47 @@
|
|||
<vn-horizontal>
|
||||
<vn-one>
|
||||
<vn-label-value
|
||||
label="Created"
|
||||
label="Created"
|
||||
value="{{$ctrl.summary.claim.created | date: 'dd/MM/yyyy'}}">
|
||||
</vn-label-value>
|
||||
<vn-label-value
|
||||
label="State"
|
||||
label="State"
|
||||
value="{{$ctrl.summary.claim.claimState.description}}">
|
||||
</vn-label-value>
|
||||
<vn-label-value
|
||||
label="Salesperson"
|
||||
label="Salesperson"
|
||||
value="{{$ctrl.summary.claim.client.salesPersonUser.name}}">
|
||||
</vn-label-value>
|
||||
<vn-label-value
|
||||
label="Attended by"
|
||||
label="Attended by"
|
||||
value="{{$ctrl.summary.claim.worker.user.nickname}}">
|
||||
</vn-label-value>
|
||||
</vn-one>
|
||||
<vn-two>
|
||||
<vn-textarea
|
||||
vn-three
|
||||
disabled="true"
|
||||
label="Observation"
|
||||
ng-model="$ctrl.summary.claim.observation">
|
||||
</vn-textarea>
|
||||
</vn-two>
|
||||
<vn-auto>
|
||||
<h4 ng-show="$ctrl.isSalesPerson && $ctrl.summary.observations.length">
|
||||
<a
|
||||
ui-sref="claim.card.note.index({id:$ctrl.claim.id})"
|
||||
target="_self">
|
||||
<span translate vn-tooltip="Go to">Observations</span>
|
||||
</a>
|
||||
</h4>
|
||||
<h4
|
||||
ng-show="!$ctrl.isSalesPerson && $ctrl.summary.observations.length"
|
||||
translate>
|
||||
Observations
|
||||
</h4>
|
||||
<div
|
||||
ng-repeat="note in $ctrl.summary.observations"
|
||||
class="note vn-pa-sm border-solid border-radius vn-mb-md">
|
||||
<vn-horizontal class="vn-mb-sm" style="color: #666">
|
||||
<vn-one>{{::note.worker.firstName}} {{::note.worker.lastName}}</vn-one>
|
||||
<vn-auto>{{::note.created | date:'dd/MM/yyyy HH:mm'}}</vn-auto>
|
||||
</vn-horizontal>
|
||||
<vn-horizontal class="text">
|
||||
{{::note.text}}
|
||||
</vn-horizontal>
|
||||
</div>
|
||||
</vn-auto>
|
||||
<vn-auto>
|
||||
<h4 ng-show="$ctrl.isSalesPerson">
|
||||
<a
|
||||
|
|
|
@ -50,22 +50,26 @@
|
|||
"component": "vn-client",
|
||||
"description": "Clients",
|
||||
"acl": ["employee"]
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/index?q",
|
||||
"state": "client.index",
|
||||
"component": "vn-client-index",
|
||||
"description": "Clients"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/create",
|
||||
"state": "client.create",
|
||||
"component": "vn-client-create",
|
||||
"description": "New client"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/:id?sendSMS&phone&message",
|
||||
"state": "client.card",
|
||||
"abstract": true,
|
||||
"component": "vn-client-card"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/summary",
|
||||
"state": "client.card.summary",
|
||||
"component": "vn-client-summary",
|
||||
|
@ -73,7 +77,8 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/basic-data",
|
||||
"state": "client.card.basicData",
|
||||
"component": "vn-client-basic-data",
|
||||
|
@ -81,7 +86,8 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/fiscal-data",
|
||||
"state": "client.card.fiscalData",
|
||||
"component": "vn-client-fiscal-data",
|
||||
|
@ -89,7 +95,8 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/billing-data",
|
||||
"state": "client.card.billingData",
|
||||
"component": "vn-client-billing-data",
|
||||
|
@ -97,12 +104,14 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/address",
|
||||
"state": "client.card.address",
|
||||
"component": "ui-view",
|
||||
"abstract": true
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/index?q",
|
||||
"state": "client.card.address.index",
|
||||
"component": "vn-client-address-index",
|
||||
|
@ -110,7 +119,8 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/create",
|
||||
"state": "client.card.address.create",
|
||||
"component": "vn-client-address-create",
|
||||
|
@ -118,12 +128,14 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/:addressId/edit",
|
||||
"state": "client.card.address.edit",
|
||||
"component": "vn-client-address-edit",
|
||||
"description": "Edit address"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/web-access",
|
||||
"state": "client.card.webAccess",
|
||||
"component": "vn-client-web-access",
|
||||
|
@ -131,12 +143,14 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/note",
|
||||
"state": "client.card.note",
|
||||
"component": "ui-view",
|
||||
"abstract": true
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/index",
|
||||
"state": "client.card.note.index",
|
||||
"component": "vn-client-note",
|
||||
|
@ -144,17 +158,20 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/create",
|
||||
"state": "client.card.note.create",
|
||||
"component": "vn-note-create",
|
||||
"description": "New note"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/credit",
|
||||
"abstract": true,
|
||||
"state": "client.card.credit",
|
||||
"component": "ui-view"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/index",
|
||||
"state": "client.card.credit.index",
|
||||
"component": "vn-client-credit-index",
|
||||
|
@ -162,7 +179,8 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/create",
|
||||
"state": "client.card.credit.create",
|
||||
"component": "vn-client-credit-create",
|
||||
|
@ -171,12 +189,14 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/greuge",
|
||||
"abstract": true,
|
||||
"state": "client.card.greuge",
|
||||
"component": "ui-view"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/index",
|
||||
"state": "client.card.greuge.index",
|
||||
"component": "vn-client-greuge-index",
|
||||
|
@ -184,7 +204,8 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/create",
|
||||
"state": "client.card.greuge.create",
|
||||
"component": "vn-client-greuge-create",
|
||||
|
@ -193,17 +214,20 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/mandate",
|
||||
"state": "client.card.mandate",
|
||||
"component": "vn-client-mandate",
|
||||
"description": "Mandates"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/balance",
|
||||
"abstract": true,
|
||||
"state": "client.card.balance",
|
||||
"component": "ui-view"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/index",
|
||||
"state": "client.card.balance.index",
|
||||
"component": "vn-client-balance-index",
|
||||
|
@ -211,7 +235,8 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/create?payed&companyFk&bankFk&payedAmount",
|
||||
"state": "client.card.balance.create",
|
||||
"component": "vn-client-balance-create",
|
||||
|
@ -219,12 +244,14 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/recovery",
|
||||
"abstract": true,
|
||||
"state": "client.card.recovery",
|
||||
"component": "ui-view"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/index",
|
||||
"state": "client.card.recovery.index",
|
||||
"component": "vn-client-recovery-index",
|
||||
|
@ -232,7 +259,8 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/create",
|
||||
"state": "client.card.recovery.create",
|
||||
"component": "vn-client-recovery-create",
|
||||
|
@ -240,12 +268,14 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/credit-insurance",
|
||||
"abstract": true,
|
||||
"state": "client.card.creditInsurance",
|
||||
"component": "ui-view"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/index",
|
||||
"state": "client.card.creditInsurance.index",
|
||||
"component": "vn-client-credit-insurance-index",
|
||||
|
@ -253,7 +283,8 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/create",
|
||||
"state": "client.card.creditInsurance.create",
|
||||
"component": "vn-client-credit-insurance-create",
|
||||
|
@ -262,13 +293,15 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/insurance",
|
||||
"abstract": true,
|
||||
"state": "client.card.creditInsurance.insurance",
|
||||
"component": "ui-view",
|
||||
"acl": ["insurance"]
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/:classificationId/index",
|
||||
"state": "client.card.creditInsurance.insurance.index",
|
||||
"component": "vn-client-credit-insurance-insurance-index",
|
||||
|
@ -277,7 +310,8 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/:classificationId/create",
|
||||
"state": "client.card.creditInsurance.insurance.create",
|
||||
"component": "vn-client-credit-insurance-insurance-create",
|
||||
|
@ -286,7 +320,8 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/contact",
|
||||
"state": "client.card.contact",
|
||||
"component": "vn-client-contact",
|
||||
|
@ -294,12 +329,14 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/sample",
|
||||
"abstract": true,
|
||||
"state": "client.card.sample",
|
||||
"component": "ui-view"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/index",
|
||||
"state": "client.card.sample.index",
|
||||
"component": "vn-client-sample-index",
|
||||
|
@ -307,7 +344,8 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/create",
|
||||
"state": "client.card.sample.create",
|
||||
"component": "vn-client-sample-create",
|
||||
|
@ -315,12 +353,14 @@
|
|||
"params": {
|
||||
"client": "$ctrl.client"
|
||||
}
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url": "/web-payment",
|
||||
"state": "client.card.webPayment",
|
||||
"component": "vn-client-web-payment",
|
||||
"description": "Web Payment"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"url" : "/log",
|
||||
"state": "client.card.log",
|
||||
"component": "vn-client-log",
|
||||
|
|
Loading…
Reference in New Issue