add importation folder (Dossier d'importation)
This commit is contained in:
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
|
||||||
|
|
||||||
|
<module name="purchase" package="com.axelor.apps.purchase.db"/>
|
||||||
|
|
||||||
|
<entity name="ImportationFolder" lang="java">
|
||||||
|
<many-to-one name="contract" title="Contract" ref="com.axelor.apps.contract.db.Contract" />
|
||||||
|
</entity>
|
||||||
|
|
||||||
|
</domain-models>
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.axelor.apps.purchase.service;
|
||||||
|
|
||||||
|
import com.axelor.apps.purchase.db.ImportationFolder;
|
||||||
|
import com.axelor.exception.AxelorException;
|
||||||
|
|
||||||
|
public interface ImportationFolderService {
|
||||||
|
|
||||||
|
public void draftImportationFolder(ImportationFolder importationFolder);
|
||||||
|
|
||||||
|
public void openImportationFolder(ImportationFolder importationFolder) throws AxelorException;
|
||||||
|
|
||||||
|
public void closeImportationFolder(ImportationFolder importationFolder);
|
||||||
|
|
||||||
|
public void cancelImportationFolder(ImportationFolder importationFolder);
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package com.axelor.apps.purchase.service;
|
||||||
|
|
||||||
|
import com.axelor.apps.base.service.administration.SequenceService;
|
||||||
|
import com.axelor.apps.purchase.db.ImportationFolder;
|
||||||
|
import com.axelor.apps.purchase.db.repo.ImportationFolderRepository;
|
||||||
|
import com.axelor.exception.AxelorException;
|
||||||
|
import com.google.inject.Inject;
|
||||||
|
import com.google.inject.persist.Transactional;
|
||||||
|
|
||||||
|
public class ImportationFolderServiceImpl implements ImportationFolderService {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
protected ImportationFolderRepository importationFolderRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void draftImportationFolder(ImportationFolder importationFolder) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
// importationFolder.setStatusSelect(ImportationFolderRepository.STATUS_DRAFT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void openImportationFolder(ImportationFolder importationFolder) throws AxelorException {
|
||||||
|
// importationFolder.setStatusSelect(ImportationFolderRepository.STATUS_OPEND);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void closeImportationFolder(ImportationFolder importationFolder) {
|
||||||
|
// importationFolder.setStatusSelect(ImportationFolderRepository.STATUS_CLOSED);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void cancelImportationFolder(ImportationFolder importationFolder) {
|
||||||
|
// importationFolder.setStatusSelect(ImportationFolderRepository.STATUS_CANCELED);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.axelor.apps.purchase.web;
|
||||||
|
|
||||||
|
import com.axelor.apps.purchase.db.ImportationFolder;
|
||||||
|
import com.axelor.apps.purchase.service.ImportationFolderService;
|
||||||
|
import com.axelor.exception.AxelorException;
|
||||||
|
import com.axelor.inject.Beans;
|
||||||
|
import com.axelor.rpc.ActionRequest;
|
||||||
|
import com.axelor.rpc.ActionResponse;
|
||||||
|
import com.google.inject.Singleton;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
public class ImportationFolderController {
|
||||||
|
public void draftImportationFolder(ActionRequest request, ActionResponse response) {
|
||||||
|
ImportationFolder importationFolder = request.getContext().asType(ImportationFolder.class);
|
||||||
|
Beans.get(ImportationFolderService.class).draftImportationFolder(importationFolder);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void openImportationFolder(ActionRequest request, ActionResponse response) throws AxelorException {
|
||||||
|
ImportationFolder importationFolder = request.getContext().asType(ImportationFolder.class);
|
||||||
|
Beans.get(ImportationFolderService.class).openImportationFolder(importationFolder);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void closeImportationFolder(ActionRequest request, ActionResponse response) {
|
||||||
|
ImportationFolder importationFolder = request.getContext().asType(ImportationFolder.class);
|
||||||
|
Beans.get(ImportationFolderService.class).closeImportationFolder(importationFolder);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void cancelImportationFolder(ActionRequest request, ActionResponse response) {
|
||||||
|
ImportationFolder importationFolder = request.getContext().asType(ImportationFolder.class);
|
||||||
|
Beans.get(ImportationFolderService.class).cancelImportationFolder(importationFolder);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
|
||||||
|
|
||||||
|
<module name="purchase" package="com.axelor.apps.purchase.db"/>
|
||||||
|
|
||||||
|
<sequence name="importation.seq" initial="1" increment="1" padding="5" prefix="DOSIMP"/>
|
||||||
|
|
||||||
|
<entity name="ImportationFolder" sequential="true">
|
||||||
|
<string name="name" sequence="importation.seq" title="Ref."/>
|
||||||
|
<integer name="statusSelect" selection="purchase.importation.folder.status.select" readonly="true" default="1" />
|
||||||
|
<one-to-many name="purchaseOrder" ref="com.axelor.apps.purchase.db.PurchaseOrder" title="Purchase order"/>
|
||||||
|
<many-to-one name="forwardingPartner" ref="com.axelor.apps.base.db.Partner" required="true" title="Forwarding Partner"/>
|
||||||
|
<many-to-one name="supplierPartner" ref="com.axelor.apps.base.db.Partner" required="true" title="Supplier"/>
|
||||||
|
<string name="containerNumber" title="Number Container."/>
|
||||||
|
<date name="boardingDate" title="Boarding Date"/>
|
||||||
|
<date name="arrivalGoodiDate" title="Arrival goods"/>
|
||||||
|
<date name="arrivalDocDate" title="Arrival Documents"/>
|
||||||
|
<date name="invoiceDirectDebitDate" title="Invoice direct debit"/>
|
||||||
|
<date name="folderReceptionDate" title="Folder reception date"/>
|
||||||
|
<date name="arrivalNoticeDate" title="Arrival notice date"/>
|
||||||
|
<date name="d_10_date" title="Date D10"/>
|
||||||
|
<many-to-one name="currency" ref="com.axelor.apps.base.db.Currency" title="Currency"/>
|
||||||
|
<integer name="valorisation" title="Valorisation Type" selection="importation.folder.valorisation.type.select" />
|
||||||
|
<integer name="progress" title="Progress %" />
|
||||||
|
<integer name="orderByState"/>
|
||||||
|
|
||||||
|
<decimal name="amount" precision="20" scale="4"/>
|
||||||
|
<decimal name="taxAmount" precision="20" scale="4"/>
|
||||||
|
<decimal name="totalAmount" precision="20" scale="2"/>
|
||||||
|
|
||||||
|
<!-- Notes -->
|
||||||
|
<string name="notes" large="true" multiline="true" title="Description To Display"/>
|
||||||
|
<string name="internalNote" large="true" multiline="true" title="Internal Note"/>
|
||||||
|
|
||||||
|
<!-- <many-to-one name="shipmentMode" ref="com.axelor.apps.stock.db.ShipmentMode"/> -->
|
||||||
|
<!-- <many-to-one name="transportMode" ref="com.axelor.apps.stock.db.FreightCarrierMode" required="true" title="Transport Mode"/> -->
|
||||||
|
|
||||||
|
|
||||||
|
<extra-code>
|
||||||
|
<![CDATA[
|
||||||
|
/** Static importation folder status select */
|
||||||
|
public static final int STATUS_DRAFT = 1;
|
||||||
|
public static final int STATUS_OPEND = 2;
|
||||||
|
public static final int STATUS_CLOSED = 3;
|
||||||
|
public static final int STATUS_CANCELED = 4;
|
||||||
|
]]>
|
||||||
|
</extra-code>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- end sophal -->
|
||||||
|
|
||||||
|
|
||||||
|
</entity>
|
||||||
|
|
||||||
|
</domain-models>
|
||||||
@@ -65,6 +65,10 @@
|
|||||||
<many-to-one name="tradingName" ref="com.axelor.apps.base.db.TradingName"/>
|
<many-to-one name="tradingName" ref="com.axelor.apps.base.db.TradingName"/>
|
||||||
<many-to-one name="printingSettings" ref="com.axelor.apps.base.db.PrintingSettings"/>
|
<many-to-one name="printingSettings" ref="com.axelor.apps.base.db.PrintingSettings"/>
|
||||||
|
|
||||||
|
<!-- importation folder -->
|
||||||
|
<integer name="importationType" selection="importation.folder.type.select" title="Type d'importation" default="1" />
|
||||||
|
<many-to-one name="importationFolder" ref="com.axelor.apps.purchase.db.ImportationFolder" title="Dossier d'importation" />
|
||||||
|
|
||||||
<unique-constraint columns="purchaseOrderSeq,company"/>
|
<unique-constraint columns="purchaseOrderSeq,company"/>
|
||||||
|
|
||||||
<extra-code>
|
<extra-code>
|
||||||
|
|||||||
@@ -0,0 +1,137 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<object-views xmlns="http://axelor.com/xml/ns/object-views"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
|
||||||
|
|
||||||
|
<form name="importation-folder-form" title="Dossier d'importation" model="com.axelor.apps.purchase.db.ImportationFolder">
|
||||||
|
<panel name="mainPanel">
|
||||||
|
<field name="statusSelect" widget="nav-select" readonly="true" default="1" colSpan="12" showTitle="false"/>
|
||||||
|
<field name="importationFolderSeq" showTitle="false">
|
||||||
|
<viewer depends="importationFolderSeq"><![CDATA[
|
||||||
|
<h3>
|
||||||
|
<span ng-show="record.importationFolderSeq" x-translate>Importation Folder</span>
|
||||||
|
{{record.importationFolderSeq}}
|
||||||
|
</h3>
|
||||||
|
]]>
|
||||||
|
</viewer>
|
||||||
|
</field>
|
||||||
|
<spacer colSpan="12" />
|
||||||
|
<field name="containerNumber" title="N° Contenaire"/>
|
||||||
|
<field name="forwardingPartner" form-view="partner-form" grid-view="partner-grid" title="Code transitaire"/>
|
||||||
|
<field name="supplierPartner" form-view="partner-form" grid-view="partner-grid" title="Code fournisseur"/>
|
||||||
|
<spacer colSpan="12" />
|
||||||
|
<field name="boardingDate" title="Date embarquement"/>
|
||||||
|
<field name="arrivalGoodiDate" title="Date arrivee marchandise"/>
|
||||||
|
<field name="arrivalDocDate" title="Date arrivee document"/>
|
||||||
|
<field name="invoiceDirectDebitDate" title="Date domiciliation facture"/>
|
||||||
|
<field name="folderReceptionDate" title="Date reception dossier"/>
|
||||||
|
<field name="arrivalNoticeDate" title="Date avis arrivee"/>
|
||||||
|
<field name="d_10_date" title="Date d10" />
|
||||||
|
<field name="valorisation" title="Type de valorisation"/>
|
||||||
|
<field name="currency" title="Devise" />
|
||||||
|
<field name="contract" title="Type de contrat" />
|
||||||
|
|
||||||
|
</panel>
|
||||||
|
<panel-tabs name="mainPanelTab">
|
||||||
|
<panel title="Description">
|
||||||
|
<field name="notes" title="Notes" colSpan="12" widget="html" />
|
||||||
|
</panel>
|
||||||
|
<panel title="Shipping mode">
|
||||||
|
<field name="shipmentMode" form-view="shipment-mode-form" grid-view="shipment-mode-grid" />
|
||||||
|
<field name="freightCarrierMode" form-view="freight-carrier-mode-form" grid-view="freight-carrier-mode-grid" />
|
||||||
|
</panel>
|
||||||
|
</panel-tabs>
|
||||||
|
<panel name="actionsPanel" sidebar="true">
|
||||||
|
<button name="draftBtn" title="Draft" onClick="save,action-importation-folder-record-draft,save" />
|
||||||
|
<button name="openedBtn" title="Open" onClick="save,action-importation-folder-record-open,save" />
|
||||||
|
<button name="closeBtn" title="Close" onClick="save,action-importation-folder-record-close,save" />
|
||||||
|
<button name="cancelBtn" title="Cancel" class="danger" css="btn-danger" icon="fa-times" onClick="save,action-importation-folder-record-cancel,save" />
|
||||||
|
</panel>
|
||||||
|
<panel name="intaxTotalPanel" sidebar="true">
|
||||||
|
<separator/>
|
||||||
|
<field name="purchaseOrder" showTitle="false" colSpan="12" css="sub-order">
|
||||||
|
<viewer depends="purchaseOrder">
|
||||||
|
<![CDATA[
|
||||||
|
<dl class="dl-horizontal">
|
||||||
|
<dt x-translate>Total W.T.</dt>
|
||||||
|
<dd>{{record.exTaxTotal}} {{record.currency.symbol}}</dd>
|
||||||
|
<dt x-translate>Total tax</dt>
|
||||||
|
<dd>{{record.taxTotal}} {{record.currency.symbol}}</dd>
|
||||||
|
<dt class="order-subtotal-total" x-translate>Total A.T.I.</dt>
|
||||||
|
<dd class="order-subtotal-total">{{record.inTaxTotal}} {{record.currency.symbol}}</dd>
|
||||||
|
<dt x-translate>Amount invoiced W.T.</dt>
|
||||||
|
<dd>{{record.amountInvoiced}} {{record.currency.symbol}}</dd>
|
||||||
|
</dl>
|
||||||
|
]]>
|
||||||
|
</viewer>
|
||||||
|
</field>
|
||||||
|
<field name="purchaseOrder.inTaxTotal" />
|
||||||
|
<field name="purchaseOrder.currency.symbol" />
|
||||||
|
</panel>
|
||||||
|
<panel sidebar="true">
|
||||||
|
<field name="createdOn"/>
|
||||||
|
<field name="createdBy"/>
|
||||||
|
<field name="updatedOn"/>
|
||||||
|
<field name="updatedBy"/>
|
||||||
|
</panel>
|
||||||
|
<panel sidebar="true">
|
||||||
|
</panel>
|
||||||
|
<panel-mail>
|
||||||
|
<mail-messages limit="4" />
|
||||||
|
<mail-followers />
|
||||||
|
</panel-mail>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
<grid name="importation-folder-grid" title="Dossier d'importation" model="com.axelor.apps.purchase.db.ImportationFolder">
|
||||||
|
<field name="importationFolderSeq"/>
|
||||||
|
<field name="purchaseOrder"/>
|
||||||
|
<field name="forwardingPartner"/>
|
||||||
|
<field name="supplierPartner"/>
|
||||||
|
<field name="containerNumber"/>
|
||||||
|
<field name="boardingDate"/>
|
||||||
|
<field name="arrivalGoodiDate"/>
|
||||||
|
<field name="arrivalDocDate"/>
|
||||||
|
<field name="invoiceDirectDebitDate"/>
|
||||||
|
<field name="folderReceptionDate"/>
|
||||||
|
<field name="arrivalNoticeDate"/>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<kanban name="importation-folder-kanban" title="Dossier d'importation" model="com.axelor.apps.purchase.db.ImportationFolder" columnBy="statusSelect" sequenceBy="orderByState" draggable="true" limit="10">
|
||||||
|
<field name="importationFolderSeq"/>
|
||||||
|
<field name="forwardingPartner"/>
|
||||||
|
<field name="supplierPartner"/>
|
||||||
|
<field name="containerNumber"/>
|
||||||
|
<field name="boardingDate"/>
|
||||||
|
<field name="progress"/>
|
||||||
|
<field name="arrivalGoodiDate" />
|
||||||
|
<hilite color="danger" if="progress == 0" />
|
||||||
|
<hilite color="success" if="progress == 100" />
|
||||||
|
<hilite color="info" if="progress >= 50" />
|
||||||
|
<hilite color="warning" if="progress > 0" />
|
||||||
|
<template><![CDATA[
|
||||||
|
<h4>{{arrivalGoodiDate}}</h4>
|
||||||
|
<div class="card-footer">
|
||||||
|
<i class='fa fa-clock-o'></i> <span>{{arrivalGoodiDate|date:'yyyy-MM-dd HH:mm:ss'}}</span>
|
||||||
|
</div>
|
||||||
|
]]>
|
||||||
|
</template>
|
||||||
|
</kanban>
|
||||||
|
|
||||||
|
|
||||||
|
<action-record name="action-importation-folder-record-draft" model="com.axelor.apps.purchase.db.ImportationFolder">
|
||||||
|
<field name="statusSelect" expr="1"/>
|
||||||
|
</action-record>
|
||||||
|
|
||||||
|
<action-record name="action-importation-folder-record-open" model="com.axelor.apps.purchase.db.ImportationFolder">
|
||||||
|
<field name="statusSelect" expr="2"/>
|
||||||
|
</action-record>
|
||||||
|
|
||||||
|
<action-record name="action-importation-folder-record-close" model="com.axelor.apps.purchase.db.ImportationFolder">
|
||||||
|
<field name="statusSelect" expr="3"/>
|
||||||
|
</action-record>
|
||||||
|
|
||||||
|
<action-record name="action-importation-folder-record-cancel" model="com.axelor.apps.purchase.db.ImportationFolder">
|
||||||
|
<field name="statusSelect" expr="4"/>
|
||||||
|
</action-record>
|
||||||
|
|
||||||
|
</object-views>
|
||||||
@@ -3,7 +3,12 @@
|
|||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
|
xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.2.xsd">
|
||||||
|
|
||||||
|
<!-- dossier d'inportation -->
|
||||||
|
|
||||||
|
<selection name="importation.folder.type.select">
|
||||||
|
<option value="1">Local</option>
|
||||||
|
<option value="2">Etranger</option>
|
||||||
|
</selection>
|
||||||
<!-- Nomenclature : * name : "interfaceName" + "fieldName" + ".select" -->
|
<!-- Nomenclature : * name : "interfaceName" + "fieldName" + ".select" -->
|
||||||
|
|
||||||
<selection name="purchase.purchase.order.status.select">
|
<selection name="purchase.purchase.order.status.select">
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
|
||||||
|
|
||||||
|
<module name="purchase" package="com.axelor.apps.purchase.db"/>
|
||||||
|
|
||||||
|
<entity name="ImportationFolder" lang="java">
|
||||||
|
<many-to-one name="shipmentMode" ref="com.axelor.apps.stock.db.ShipmentMode"/>
|
||||||
|
<many-to-one name="freightCarrierMode" ref="com.axelor.apps.stock.db.FreightCarrierMode"/>
|
||||||
|
</entity>
|
||||||
|
</domain-models>
|
||||||
Reference in New Issue
Block a user