From a5ac3831fa65a7cd1536007d397c983b8f737d48 Mon Sep 17 00:00:00 2001 From: faisolavolut Date: Fri, 13 Jun 2025 10:37:09 +0700 Subject: [PATCH] refactor balinusa --- .../bin/andromedia/.DS_Store | Bin 8196 -> 0 bytes .../bin/andromedia/midsuit/.DS_Store | Bin 8196 -> 0 bytes andromeida.midsuit.project/src/.DS_Store | Bin 8196 -> 0 bytes .../src/andromedia/.DS_Store | Bin 8196 -> 0 bytes .../src/andromedia/midsuit/.DS_Store | Bin 8196 -> 0 bytes .../balinusa/midsuit/model/X_C_Location.java | 5 - .../.DS_Store | Bin .../.classpath | 46 +- .../.project | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 0 .../META-INF/MANIFEST.MF | 6 +- .../META-INF/bcprov-ext-jdk15on-160.jar | Bin .../META-INF/commons-lang-2.6.jar | Bin .../META-INF/commons-logging-1.1.1.jar | Bin .../META-INF/dom4j-1.6.1.jar | Bin .../META-INF/hsqldb.jar | Bin .../META-INF/jackcess-2.1.3.jar | Bin .../META-INF/jackcess-encrypt-2.1.4.jar | Bin .../META-INF/poi-3.9.jar | Bin .../META-INF/poi-ooxml-3.9.jar | Bin .../META-INF/poi-ooxml-schemas-3.9.jar | Bin .../META-INF/ucanaccess-3.0.7.jar | Bin .../META-INF/xmlbeans-2.3.0.jar | Bin .../OSGI-INF/MID_CalloutFactory.xml | 0 .../OSGI-INF/MID_CreateFromFactory.xml | 0 .../OSGI-INF/MID_DocFactory.xml | 0 .../OSGI-INF/MID_FormFactory.xml | 0 .../OSGI-INF/MID_ModelFactory.xml | 0 .../OSGI-INF/MID_ProcessFactory.xml | 0 .../OSGI-INF/MID_ValidatorFactory.xml | 0 balinusa.midsuit.project/bin/.gitignore | 2 + .../build.properties | 0 .../src}/.DS_Store | Bin .../balinusa/midsuit/activator/Activator.java | 2 +- .../callout/MID_CalloutAnalysisQC.java | 132 +- .../callout/MID_CalloutCeisaUpload.java | 4 +- .../midsuit/callout/MID_CalloutInOut.java | 84 +- .../midsuit/callout/MID_CalloutInOutLine.java | 68 +- .../callout/MID_CalloutInventoryLine.java | 2 +- .../callout/MID_CalloutInventoryLineMA.java | 2 +- .../callout/MID_CalloutIsReturnCeisa.java | 4 +- .../midsuit/callout/MID_CalloutMovement.java | 2 +- .../callout/MID_CalloutMovementLineMA.java | 2 +- .../midsuit/callout/MID_CalloutOrder.java | 110 +- .../callout/MID_CalloutOrderCeisa.java | 4 +- .../midsuit/callout/MID_CalloutOrderLine.java | 2 +- .../callout/MID_CalloutOrderLineMA.java | 5 +- .../midsuit/callout/MID_CalloutPPO.java | 62 +- .../callout/MID_CalloutProduction.java | 69 +- .../callout/MID_CalloutProductionLine.java | 114 +- .../midsuit/callout/MID_CalloutRMALineMA.java | 69 +- .../callout/MID_CalloutRequisition.java | 2 +- .../callout/MID_CalloutRequisitionLine.java | 2 +- .../MID_CalloutRequisitionTrxLine.java | 4 +- .../midsuit/doc/MID_DocAllocationHdr.java | 2 +- .../balinusa/midsuit/doc/MID_DocAnalysis.java | 70 +- .../balinusa/midsuit/doc/MID_DocDDOrder.java | 2 +- .../balinusa/midsuit/doc/MID_DocInvoice.java | 2 +- .../balinusa/midsuit/doc/MID_DocMRPPPO.java | 67 +- .../balinusa/midsuit/doc/MID_DocMatchInv.java | 1174 ++++---- .../midsuit/doc/MID_DocMidRequsiition.java | 4 +- .../balinusa/midsuit/doc/MID_DocMovement.java | 544 ++-- .../midsuit/factory/MID_CalloutFactory.java | 60 +- .../factory/MID_CreateFromFactory.java | 10 +- .../midsuit/factory/MID_DocFactory.java | 26 +- .../midsuit/factory/MID_FormFactory.java | 2 +- .../midsuit/factory/MID_ModelFactory.java | 84 +- .../midsuit/factory/MID_ProcessFactory.java | 2 +- .../midsuit/factory/MID_ValidatorFactory.java | 36 +- .../midsuit/form/BillingListGenerate.java | 6 +- .../midsuit/form/MID_CreateFromInvoice.java | 1270 ++++---- .../midsuit/form/MID_CreateFromOrder.java | 4 +- .../midsuit/form/MID_CreateFromRMA.java | 460 +-- .../form/MID_CreateFromRequisition.java | 2 +- .../midsuit/form/MID_CreateFromShipment.java | 6 +- .../midsuit/form/MID_WCreateFromInvoice.java | 950 +++--- .../midsuit/form/MID_WCreateFromOrder.java | 2 +- .../midsuit/form/MID_WCreateFromRMA.java | 408 +-- .../form/MID_WCreateFromRequisition.java | 2 +- .../midsuit/form/MID_WCreateFromShipment.java | 2 +- .../balinusa/midsuit/form/MID_WExport.java | 1028 +++---- .../midsuit/form/WBillingListGenerate.java | 2 +- .../midsuit/form/WInvoiceLandedCost.java | 4 +- .../midsuit/grid/InvoiceLandedCost.java | 2 +- .../src/balinusa/midsuit/model/AND_PPO.java | 334 +-- .../midsuit/model/I_C_BillingList.java | 2 +- .../midsuit/model/I_C_BillingListLine.java | 2 +- .../midsuit/model/I_C_OrderLineMA.java | 2 +- .../balinusa/midsuit/model/I_DD_Order.java | 2 +- .../midsuit/model/I_DD_OrderLine.java | 2 +- .../midsuit/model/I_MID_AJUDocumentType.java | 2 +- .../midsuit/model/I_MID_Analysis.java | 2 +- .../midsuit/model/I_MID_AnalysisLine.java | 2 +- .../midsuit/model/I_MID_AnalysisPro.java | 2 +- .../midsuit/model/I_MID_Parameter.java | 2 +- .../midsuit/model/I_MID_Requisition.java | 2 +- .../midsuit/model/I_MID_RequisitionLine.java | 2 +- .../midsuit/model/I_MID_UnrealizedRate.java | 2 +- .../model/I_MID_UnrealizedRateLine.java | 2 +- .../midsuit/model/I_MID_UploadPEB.java | 2 +- .../midsuit/model/I_MID_UploadPEBLine.java | 2 +- .../midsuit/model/I_MID_UploadTPB.java | 2 +- .../midsuit/model/I_MID_UploadTPBLine.java | 2 +- .../midsuit/model/I_MID_UploadTPBLineDet.java | 2 +- .../midsuit/model/I_M_PaymentMethod.java | 2 +- .../midsuit/model/I_M_Production.java | 2 +- .../midsuit/model/I_M_ProductionConfirm.java | 2 +- .../src/balinusa/midsuit/model/I_M_RMAMA.java | 2 +- .../midsuit/model/I_M_RequisitionTax.java | 2 +- .../balinusa/midsuit/model/I_M_Warehouse.java | 2 +- .../balinusa/midsuit/model/I_Persistent.java | 2 +- .../src/balinusa/midsuit/model/I_T_Aging.java | 2 +- .../midsuit/model/I_mid_ceisa_entitas.java | 2 +- .../midsuit/model/I_mid_ceisa_order.java | 2 +- .../midsuit/model/I_mid_ceisa_orderline.java | 2 +- .../midsuit/model/I_mid_ceisa_upload.java | 2 +- .../src/balinusa/midsuit/model/I_ps_ppo.java | 2 +- .../balinusa/midsuit/model/I_ps_ppoline.java | 2 +- .../midsuit/model/I_zpos_Cashier.java | 2 +- .../src/balinusa/midsuit/model/MID_Aging.java | 2 +- .../balinusa/midsuit/model/MID_Analysis.java | 458 +-- .../midsuit/model/MID_AnalysisLine.java | 46 +- .../midsuit/model/MID_AnalysisPro.java | 96 +- .../midsuit/model/MID_Ceisa_Order.java | 2 +- .../midsuit/model/MID_MAssetAddition.java | 2 +- .../midsuit/model/MID_MAssetDisposed.java | 2 +- .../midsuit/model/MID_MBillingList.java | 2 +- .../midsuit/model/MID_MBillingListLine.java | 2 +- .../balinusa/midsuit/model/MID_MDDOrder.java | 2562 ++++++++--------- .../midsuit/model/MID_MDDOrderLine.java | 2 +- .../midsuit/model/MID_MDepreciationEntry.java | 2 +- .../midsuit/model/MID_MInventory.java | 2 +- .../midsuit/model/MID_MInventoryLineMA.java | 2 +- .../balinusa/midsuit/model/MID_MInvoice.java | 2 +- .../balinusa/midsuit/model/MID_MMovement.java | 120 +- .../midsuit/model/MID_MMovementLine.java | 92 +- .../balinusa/midsuit/model/MID_MOrder.java | 684 ++--- .../midsuit/model/MID_MOrderLine.java | 2 +- .../balinusa/midsuit/model/MID_MPayment.java | 456 +-- .../midsuit/model/MID_MPaymentMethod.java | 2 +- .../midsuit/model/MID_MProductionConfirm.java | 2 +- .../midsuit/model/MID_MRequisition.java | 2 +- .../midsuit/model/MID_MRequisitionLine.java | 2 +- .../midsuit/model/MID_MRequisitionTrx.java | 2 +- .../model/MID_MRequisitionTrxLine.java | 2 +- .../midsuit/model/MID_MRequsitionTax.java | 2 +- .../src/balinusa/midsuit/model/MID_PPO.java | 652 ++--- .../balinusa/midsuit/model/MID_PPOLine.java | 2 +- .../balinusa/midsuit/model/MID_Parameter.java | 46 +- .../midsuit/model/MID_UnrealizedRate.java | 80 +- .../midsuit/model/MID_UnrealizedRateLine.java | 54 +- .../src/balinusa/midsuit/model/MPayment.java | 2 +- .../balinusa/midsuit/model/MWarehouse.java | 2 +- .../midsuit/model/X_C_BillingList.java | 2 +- .../midsuit/model/X_C_BillingListLine.java | 2 +- .../balinusa/midsuit/model/X_C_Location.java | 5 + .../midsuit/model/X_C_OrderLineMA.java | 2 +- .../balinusa/midsuit/model/X_DD_Order.java | 2 +- .../midsuit/model/X_DD_OrderLine.java | 2 +- .../midsuit/model/X_MID_AJUDocumentType.java | 2 +- .../midsuit/model/X_MID_Analysis.java | 2 +- .../midsuit/model/X_MID_AnalysisLine.java | 2 +- .../midsuit/model/X_MID_AnalysisPro.java | 2 +- .../midsuit/model/X_MID_Parameter.java | 2 +- .../midsuit/model/X_MID_Requisition.java | 2 +- .../midsuit/model/X_MID_RequisitionLine.java | 2 +- .../midsuit/model/X_MID_UnrealizedRate.java | 2 +- .../model/X_MID_UnrealizedRateLine.java | 2 +- .../midsuit/model/X_MID_UploadPEB.java | 2 +- .../midsuit/model/X_MID_UploadPEBLine.java | 2 +- .../midsuit/model/X_MID_UploadTPB.java | 2 +- .../midsuit/model/X_MID_UploadTPBLine.java | 2 +- .../midsuit/model/X_MID_UploadTPBLineDet.java | 2 +- .../midsuit/model/X_M_PaymentMethod.java | 2 +- .../midsuit/model/X_M_Production.java | 2 +- .../midsuit/model/X_M_ProductionConfirm.java | 2 +- .../src/balinusa/midsuit/model/X_M_RMAMA.java | 2 +- .../midsuit/model/X_M_RequisitionTax.java | 2 +- .../balinusa/midsuit/model/X_M_Warehouse.java | 2 +- .../src/balinusa/midsuit/model/X_T_Aging.java | 2 +- .../midsuit/model/X_mid_ceisa_entitas.java | 2 +- .../midsuit/model/X_mid_ceisa_order.java | 2 +- .../midsuit/model/X_mid_ceisa_orderline.java | 2 +- .../midsuit/model/X_mid_ceisa_upload.java | 2 +- .../src/balinusa/midsuit/model/X_ps_ppo.java | 2 +- .../balinusa/midsuit/model/X_ps_ppoline.java | 2 +- .../midsuit/model/X_zpos_Cashier.java | 2 +- .../midsuit/process/BillingListBuffer.java | 4 +- .../midsuit/process/C_OrderRequsition.java | 2 +- .../midsuit/process/CryptCodecOpener.java | 2 +- .../process/MID_AutoCloseRequisition.java | 4 +- .../midsuit/process/MID_CompleteInvoice.java | 2 +- .../midsuit/process/MID_CompleteRecord.java | 210 +- .../MID_CreateLinesRequisitionOrder.java | 2 +- .../midsuit/process/MID_FinReport.java | 2 +- .../midsuit/process/MID_FinReportJasper.java | 2 +- .../midsuit/process/MID_FinReportPeriod.java | 2 +- .../process/MID_GenerateLandedCost.java | 2 +- .../MID_GenerateOrderCeisa40Keluar.java | 12 +- .../MID_GenerateOrderCeisa40Masuk.java | 12 +- .../process/MID_InsertIntoAllTable.java | 2 +- .../process/MID_InventoryLineCreate.java | 6 +- .../midsuit/process/MID_JournalTest.java | 2 +- .../process/MID_MovementCreateLine.java | 100 +- .../midsuit/process/MID_PEBRevoke.java | 6 +- .../midsuit/process/MID_PEBUpdateOrder.java | 6 +- .../process/MID_PEBUpdateOrderLine.java | 138 +- .../midsuit/process/MID_ProcessAging.java | 4 +- .../MID_ProcessCompleteUnrealized.java | 58 +- .../midsuit/process/MID_ProcessCopyOrder.java | 2 +- .../process/MID_ProcessCreateInBoundWH.java | 199 +- .../process/MID_ProcessCreateOutBoundWH.java | 187 +- .../midsuit/process/MID_ProcessRVAging.java | 528 ++-- .../MID_ProcessUnrealizedGainLoss.java | 382 +-- .../midsuit/process/MID_ProductionCreate.java | 4 +- .../midsuit/process/MID_RevokeCeisa40.java | 10 +- .../midsuit/process/MID_TPBUpdateOrder.java | 354 +-- .../process/MID_TPBUpdateOrderLine.java | 340 +-- .../midsuit/process/MID_UploadCeisa40.java | 17 +- .../midsuit/process/MID_UploadPEB.java | 2 +- .../midsuit/process/MID_UploadPEBOrder.java | 4 +- .../midsuit/process/MID_UploadPEBWindow.java | 8 +- .../midsuit/process/MID_UploadTPB.java | 8 +- .../validator/MID_CurrencyRateValidator.java | 68 +- .../validator/MID_DeprWorkfileValidator.java | 2 +- .../midsuit/validator/MID_InOutValidator.java | 2 +- .../MID_InventoryLineMAValidator.java | 2 +- .../validator/MID_InventoryLineValidator.java | 4 +- .../validator/MID_InventoryValidator.java | 2 +- .../validator/MID_InvoiceTaxValidator.java | 4 +- .../validator/MID_InvoiceValidator.java | 2 +- .../validator/MID_JournalValidator.java | 80 +- .../validator/MID_OrderLineValidator.java | 2 +- .../validator/MID_OrderTaxValidator.java | 4 +- .../midsuit/validator/MID_OrderValidator.java | 6 +- .../MID_PaymentAllocateValidator.java | 2 +- .../validator/MID_PaymentValidator.java | 2 +- .../validator/MID_PriceListValidator.java | 48 +- .../validator/MID_ProductPriceValidator.java | 2 +- .../validator/MID_ProductValidator.java | 2 +- .../MID_ProductionLineValidator.java | 88 +- .../validator/MID_ProductionValidator.java | 72 +- .../midsuit/validator/MID_RMAValidator.java | 2 +- .../MID_RequisitionTaxValidator.java | 6 +- 244 files changed, 7969 insertions(+), 7960 deletions(-) delete mode 100644 andromeida.midsuit.project/bin/andromedia/.DS_Store delete mode 100644 andromeida.midsuit.project/bin/andromedia/midsuit/.DS_Store delete mode 100644 andromeida.midsuit.project/src/.DS_Store delete mode 100644 andromeida.midsuit.project/src/andromedia/.DS_Store delete mode 100644 andromeida.midsuit.project/src/andromedia/midsuit/.DS_Store delete mode 100644 andromeida.midsuit.project/src/balinusa/midsuit/model/X_C_Location.java rename {andromeida.midsuit.project => balinusa.midsuit.project}/.DS_Store (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/.classpath (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/.project (94%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/.settings/org.eclipse.jdt.core.prefs (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/META-INF/MANIFEST.MF (90%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/META-INF/bcprov-ext-jdk15on-160.jar (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/META-INF/commons-lang-2.6.jar (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/META-INF/commons-logging-1.1.1.jar (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/META-INF/dom4j-1.6.1.jar (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/META-INF/hsqldb.jar (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/META-INF/jackcess-2.1.3.jar (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/META-INF/jackcess-encrypt-2.1.4.jar (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/META-INF/poi-3.9.jar (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/META-INF/poi-ooxml-3.9.jar (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/META-INF/poi-ooxml-schemas-3.9.jar (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/META-INF/ucanaccess-3.0.7.jar (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/META-INF/xmlbeans-2.3.0.jar (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/OSGI-INF/MID_CalloutFactory.xml (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/OSGI-INF/MID_CreateFromFactory.xml (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/OSGI-INF/MID_DocFactory.xml (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/OSGI-INF/MID_FormFactory.xml (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/OSGI-INF/MID_ModelFactory.xml (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/OSGI-INF/MID_ProcessFactory.xml (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/OSGI-INF/MID_ValidatorFactory.xml (100%) create mode 100644 balinusa.midsuit.project/bin/.gitignore rename {andromeida.midsuit.project => balinusa.midsuit.project}/build.properties (100%) rename {andromeida.midsuit.project/bin => balinusa.midsuit.project/src}/.DS_Store (100%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/activator/Activator.java (93%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutAnalysisQC.java (91%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutCeisaUpload.java (89%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutInOut.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutInOutLine.java (93%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutInventoryLine.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutInventoryLineMA.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutIsReturnCeisa.java (87%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutMovement.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutMovementLineMA.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutOrder.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutOrderCeisa.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutOrderLine.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutOrderLineMA.java (93%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutPPO.java (88%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutProduction.java (87%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutProductionLine.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutRMALineMA.java (90%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutRequisition.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutRequisitionLine.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/callout/MID_CalloutRequisitionTrxLine.java (92%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/doc/MID_DocAllocationHdr.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/doc/MID_DocAnalysis.java (85%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/doc/MID_DocDDOrder.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/doc/MID_DocInvoice.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/doc/MID_DocMRPPPO.java (85%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/doc/MID_DocMatchInv.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/doc/MID_DocMidRequsiition.java (91%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/doc/MID_DocMovement.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/factory/MID_CalloutFactory.java (62%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/factory/MID_CreateFromFactory.java (80%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/factory/MID_DocFactory.java (80%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/factory/MID_FormFactory.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/factory/MID_ModelFactory.java (73%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/factory/MID_ProcessFactory.java (93%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/factory/MID_ValidatorFactory.java (87%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/BillingListGenerate.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/MID_CreateFromInvoice.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/MID_CreateFromOrder.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/MID_CreateFromRMA.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/MID_CreateFromRequisition.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/MID_CreateFromShipment.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/MID_WCreateFromInvoice.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/MID_WCreateFromOrder.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/MID_WCreateFromRMA.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/MID_WCreateFromRequisition.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/MID_WCreateFromShipment.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/MID_WExport.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/WBillingListGenerate.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/form/WInvoiceLandedCost.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/grid/InvoiceLandedCost.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/AND_PPO.java (94%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_C_BillingList.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_C_BillingListLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_C_OrderLineMA.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_DD_Order.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_DD_OrderLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_AJUDocumentType.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_Analysis.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_AnalysisLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_AnalysisPro.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_Parameter.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_Requisition.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_RequisitionLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_UnrealizedRate.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_UnrealizedRateLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_UploadPEB.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_UploadPEBLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_UploadTPB.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_UploadTPBLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_MID_UploadTPBLineDet.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_M_PaymentMethod.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_M_Production.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_M_ProductionConfirm.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_M_RMAMA.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_M_RequisitionTax.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_M_Warehouse.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_Persistent.java (64%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_T_Aging.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_mid_ceisa_entitas.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_mid_ceisa_order.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_mid_ceisa_orderline.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_mid_ceisa_upload.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_ps_ppo.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_ps_ppoline.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/I_zpos_Cashier.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_Aging.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_Analysis.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_AnalysisLine.java (90%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_AnalysisPro.java (93%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_Ceisa_Order.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MAssetAddition.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MAssetDisposed.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MBillingList.java (93%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MBillingListLine.java (94%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MDDOrder.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MDDOrderLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MDepreciationEntry.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MInventory.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MInventoryLineMA.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MInvoice.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MMovement.java (94%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MMovementLine.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MOrder.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MOrderLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MPayment.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MPaymentMethod.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MProductionConfirm.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MRequisition.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MRequisitionLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MRequisitionTrx.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MRequisitionTrxLine.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_MRequsitionTax.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_PPO.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_PPOLine.java (93%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_Parameter.java (89%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_UnrealizedRate.java (93%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MID_UnrealizedRateLine.java (91%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MPayment.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/MWarehouse.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_C_BillingList.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_C_BillingListLine.java (99%) create mode 100644 balinusa.midsuit.project/src/balinusa/midsuit/model/X_C_Location.java rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_C_OrderLineMA.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_DD_Order.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_DD_OrderLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_AJUDocumentType.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_Analysis.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_AnalysisLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_AnalysisPro.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_Parameter.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_Requisition.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_RequisitionLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_UnrealizedRate.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_UnrealizedRateLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_UploadPEB.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_UploadPEBLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_UploadTPB.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_UploadTPBLine.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_MID_UploadTPBLineDet.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_M_PaymentMethod.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_M_Production.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_M_ProductionConfirm.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_M_RMAMA.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_M_RequisitionTax.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_M_Warehouse.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_T_Aging.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_mid_ceisa_entitas.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_mid_ceisa_order.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_mid_ceisa_orderline.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_mid_ceisa_upload.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_ps_ppo.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_ps_ppoline.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/model/X_zpos_Cashier.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/BillingListBuffer.java (91%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/C_OrderRequsition.java (88%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/CryptCodecOpener.java (94%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_AutoCloseRequisition.java (90%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_CompleteInvoice.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_CompleteRecord.java (94%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_CreateLinesRequisitionOrder.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_FinReport.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_FinReportJasper.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_FinReportPeriod.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_GenerateLandedCost.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Keluar.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Masuk.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_InsertIntoAllTable.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_InventoryLineCreate.java (94%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_JournalTest.java (93%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_MovementCreateLine.java (88%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_PEBRevoke.java (90%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_PEBUpdateOrder.java (94%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_PEBUpdateOrderLine.java (91%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_ProcessAging.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_ProcessCompleteUnrealized.java (82%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_ProcessCopyOrder.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_ProcessCreateInBoundWH.java (92%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_ProcessCreateOutBoundWH.java (92%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_ProcessRVAging.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_ProcessUnrealizedGainLoss.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_ProductionCreate.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_RevokeCeisa40.java (91%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_TPBUpdateOrder.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_TPBUpdateOrderLine.java (94%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_UploadCeisa40.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_UploadPEB.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_UploadPEBOrder.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_UploadPEBWindow.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/process/MID_UploadTPB.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_CurrencyRateValidator.java (94%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_DeprWorkfileValidator.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_InOutValidator.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_InventoryLineMAValidator.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_InventoryLineValidator.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_InventoryValidator.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_InvoiceTaxValidator.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_InvoiceValidator.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_JournalValidator.java (91%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_OrderLineValidator.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_OrderTaxValidator.java (96%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_OrderValidator.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_PaymentAllocateValidator.java (97%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_PaymentValidator.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_PriceListValidator.java (90%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_ProductPriceValidator.java (98%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_ProductValidator.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_ProductionLineValidator.java (95%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_ProductionValidator.java (93%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_RMAValidator.java (99%) rename {andromeida.midsuit.project => balinusa.midsuit.project}/src/balinusa/midsuit/validator/MID_RequisitionTaxValidator.java (94%) diff --git a/andromeida.midsuit.project/bin/andromedia/.DS_Store b/andromeida.midsuit.project/bin/andromedia/.DS_Store deleted file mode 100644 index dc2bf6f8e5c4fa0838b6f1ddaec4c872d449538e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHMUu+ab82`R&p|e|{(+aeE1$t5{D2HAfr2NnI+G-mx5bjC~6py{z1vYMX&)dB# zwA9p~ZwAyS@lQ0y7XwcwyciSzJZKYqkfiYs4?gINk4B@3Px{U5wt<$$_@WYal9}Jk zeBU=S-#5RV$=m?|W-3M}Knnmc$^v;k6?aKOF7l!j3wvq_k?a8~V1Zv4_euqOk#^J( zMIeem6oDuLQ3Rq0{2wAfceY4uiF-egMr9O%C<6Co1jPA}pe!&Q;&g!W=%7MA0SLtt zKqjiwJ3!hbLQID^9iTL&F@x6whNc)kF)%PEc|xcYrbC<#Ffa!U%mKrhF?^w*oSp0v zQXMcIU{ppCh$65!0^;+jgE4xy8{pmkes>EbnJJWP%kxvIZ!lIFiRq zAzLq)Ha8R|m3DNi+Hf_9BtH;#?rBoBk)k^`My`0&C!E&OT88l%_OzJzpzisHN~R;` zZf;rI*QRO5M1PNAm09A6KH zs|^8fQDwnbNqnVW)g)h!-HosDzJB$||Aw#Mtq}Xw*z~~aH5=NuZ0qXYo1Wjy1-o}U zizImhc1YIDu|jU)oirpmYw=cf{Ze!uBGQ@XnBYIJo7IRRZHaiC3;HnG+|)tM7}1-F zPeW55iIb+zc#UkvA5%LSF_bS0q}$aU3UQd%2GU*X9!6B<%jHn}T2++;5nN28bi`FU zss1tj-i531A$(56y9r;z_wXb941XYE9X4V!wqPr+!wt9@AI7bi#BI0(cj9i`gL|7%Q6n-yFo7wG8CZTPzPTQEKp@BMJSEcE{94CcDDQZvzw?*8X+z~)g5W( zo0<3C%)B?>&S-1^z)ZzR0W<>uqb!iGq~b0~$VFb1YQmmcLL_?t6Fl$=6JDucFVc=W zq6kD0h$0Y0Ac{Z~f&W7U=*||2EphJ$(x{9g5Jlj=jDR>F;*a=lQpEzeITzrmViwaZu3F{UzgwR$Q$ z=1ydN-LH5Vy?jEnj_CeaA*|_iBT*ucf$1F=@%P>jhu3l5m)kbygP}TCRf^7~?ScX3~qI*Tt zF)U~FIK|8HtuvNcRvIv&As_moX4jaj~?e)ZN4P0e{?#X3`DPoh&*bI;I*a!(0*QrlH+ z(AEp4%?*V~rJY@>HdGBF$p^yDy^X3iTy)3B$rX?KgwtAD%P@YOJuN0aq14!Ciu_mW;J3+YdjX?f<8<(x3p8UhUm@2 zr=h8j#7I+Te3@*<9#d0{7|NFi(jDqfg*eP>1L_NkEvm|a2ri~k+G8r6 zRR5TM@4^-M5I!g3-Gr~eH C=-cf8 diff --git a/andromeida.midsuit.project/src/.DS_Store b/andromeida.midsuit.project/src/.DS_Store deleted file mode 100644 index 5165528261a231427eaae231cbb9a74af34d1162..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHMOKcoP5UpA}anHnw+s27Kn~#?`CWbh$8wERmt$$$4L9w#y_!9?bc4v}|n4K{@ zv+E>|kx}4=lE8`Z5eRWX$q6YJgv93nmcju`7M~nAz=b0Mfy4=_d&X8i_5ltMDbrGS zb$3;DcU8ac-kJpf>?#>4fJOjdlm+E$s8}WmzR35aSlClZ6iFYzg#wshfCc(J(osj` zfye`q2Ol6GEJ5I;67!4b%Yxb--|D3?mejvy)yz ziUXzt8kLa;A`jf_0dag(iq;*9+Kacx@3|>&GH1Iv;?LzKZOikM$!{@MQMqb$6=Nz> z*QzHnXWXfbulpshOD`T5twG&ClMCxv*R_}GdhVEIPEGLoZrAa3%Q1^m*)mKL86UPB z!=37KOOD~maWVmeF@-4;ykUBJ_nuT+B01BRnC|FEwk1-@U3+F`6xPs^I@o`*aPIu{ zg_###56r{xih!EC%)Ppjt+rS04s4CRwrJ~ji?%B28m+Hi9hl&CWisK&q;I*7cg!q$ zL??KSM`riuU1zXp3jT23wMzxZo8Yy1-OiV6-8VaJJ7b+Uy%FC$>xr(1)Km*y+Y>12ol1{yq0?@1qw(^slVxCpPnCAbW4 z!uxO?K7^0qOPGV3@DmYXyPe6jgxp5&*L;+z?bn7UdAhU72m+O@NK+~H}Dhu6hFhy@g{za^TFz3 zi>N&ut~Mliiz>^WP(p2ZLSv)Lp*G&rt3Lhzp!WM}v1_$;57n>V(%iapSI2?$(w5$} zhqq%%LMXt9#Lgl%7b03DiRbJ@YIRr+`;2XoQodL_E#~h?s0{YoTV0 zK+ePg(bUJ{B&joAA)E0h)D$C}@>KzMx7w}{l6hso-K*|r1X#XW4s~#&s&XKhi)oaW zxJtLyKL+7@a1B0!F9?3~@D2O`Kfy2XCn8p1EjC~yZp2Nv1-Ij)xC7g8C${4r+=u(| z0QTZj*oXZD!z>QrFpl6D!O)N}w6KUCmat54d=W3=OG|KkmEiaez8j!y34DDa>Oz7a zP-R*0l`}=hcAeA2Uj*)*s!{8{_drFk!bTDQ_pbc?|Gu{)T43aX$OHf016bLU>FFZ< zm2PqoYbPk5q%4wQ`p+bm=ei@DvUHZe2>WPq-4(V(_i9_i>{}2$p|MKT(^!`iu HJ+Q^!JjLUA diff --git a/andromeida.midsuit.project/src/andromedia/.DS_Store b/andromeida.midsuit.project/src/andromedia/.DS_Store deleted file mode 100644 index dc2bf6f8e5c4fa0838b6f1ddaec4c872d449538e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHMUu+ab82`R&p|e|{(+aeE1$t5{D2HAfr2NnI+G-mx5bjC~6py{z1vYMX&)dB# zwA9p~ZwAyS@lQ0y7XwcwyciSzJZKYqkfiYs4?gINk4B@3Px{U5wt<$$_@WYal9}Jk zeBU=S-#5RV$=m?|W-3M}Knnmc$^v;k6?aKOF7l!j3wvq_k?a8~V1Zv4_euqOk#^J( zMIeem6oDuLQ3Rq0{2wAfceY4uiF-egMr9O%C<6Co1jPA}pe!&Q;&g!W=%7MA0SLtt zKqjiwJ3!hbLQID^9iTL&F@x6whNc)kF)%PEc|xcYrbC<#Ffa!U%mKrhF?^w*oSp0v zQXMcIU{ppCh$65!0^;+jgE4xy8{pmkes>EbnJJWP%kxvIZ!lIFiRq zAzLq)Ha8R|m3DNi+Hf_9BtH;#?rBoBk)k^`My`0&C!E&OT88l%_OzJzpzisHN~R;` zZf;rI*QRO5M1PNAm09A6KH zs|^8fQDwnbNqnVW)g)h!-HosDzJB$||Aw#Mtq}Xw*z~~aH5=NuZ0qXYo1Wjy1-o}U zizImhc1YIDu|jU)oirpmYw=cf{Ze!uBGQ@XnBYIJo7IRRZHaiC3;HnG+|)tM7}1-F zPeW55iIb+zc#UkvA5%LSF_bS0q}$aU3UQd%2GU*X9!6B<%jHn}T2++;5nN28bi`FU zss1tj-i531A$(56y9r;z_wXb941XYE9X4V!wqPr+!wt9@AI7bi#BI0(cj9i`gL|7%Q6n-yFo7wG8CZTPzPTQEKp@BMJSEcE{94CcDDQZvzw?*8X+z~)g5W( zo0<3C%)B?>&S-1^z)ZzR0W<>uqb!iGq~b0~$VFb1YQmmcLL_?t6Fl$=6JDucFVc=W zq6kD0h$0Y0Ac{Z~f&W7U=*||2EphJ$(x{9g5Jlj=jDR>F;*a=lQpEzeITzrmViwaZu3F{UzgwR$Q$ z=1ydN-LH5Vy?jEnj_CeaA*|_iBT*ucf$1F=@%P>jhu3l5m)kbygP}TCRf^7~?ScX3~qI*Tt zF)U~FIK|8HtuvNcRvIv&As_moX4jaj~?e)ZN4P0e{?#X3`DPoh&*bI;I*a!(0*QrlH+ z(AEp4%?*V~rJY@>HdGBF$p^yDy^X3iTy)3B$rX?KgwtAD%P@YOJuN0aq14!Ciu_mW;J3+YdjX?f<8<(x3p8UhUm@2 zr=h8j#7I+Te3@*<9#d0{7|NFi(jDqfg*eP>1L_NkEvm|a2ri~k+G8r6 zRR5TM@4^-M5I!g3-Gr~eH C=-cf8 diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_C_Location.java b/andromeida.midsuit.project/src/balinusa/midsuit/model/X_C_Location.java deleted file mode 100644 index c19adf2..0000000 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_C_Location.java +++ /dev/null @@ -1,5 +0,0 @@ -package andromedia.midsuit.model; - -public class X_C_Location { - -} diff --git a/andromeida.midsuit.project/.DS_Store b/balinusa.midsuit.project/.DS_Store similarity index 100% rename from andromeida.midsuit.project/.DS_Store rename to balinusa.midsuit.project/.DS_Store diff --git a/andromeida.midsuit.project/.classpath b/balinusa.midsuit.project/.classpath similarity index 98% rename from andromeida.midsuit.project/.classpath rename to balinusa.midsuit.project/.classpath index ec3e456..7a9dd95 100644 --- a/andromeida.midsuit.project/.classpath +++ b/balinusa.midsuit.project/.classpath @@ -1,23 +1,23 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/andromeida.midsuit.project/.project b/balinusa.midsuit.project/.project similarity index 94% rename from andromeida.midsuit.project/.project rename to balinusa.midsuit.project/.project index 15a03a4..7fe2ed4 100644 --- a/andromeida.midsuit.project/.project +++ b/balinusa.midsuit.project/.project @@ -1,6 +1,6 @@ - andromedia.midsuit.project + balinusa.midsuit.project diff --git a/andromeida.midsuit.project/.settings/org.eclipse.jdt.core.prefs b/balinusa.midsuit.project/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from andromeida.midsuit.project/.settings/org.eclipse.jdt.core.prefs rename to balinusa.midsuit.project/.settings/org.eclipse.jdt.core.prefs diff --git a/andromeida.midsuit.project/META-INF/MANIFEST.MF b/balinusa.midsuit.project/META-INF/MANIFEST.MF similarity index 90% rename from andromeida.midsuit.project/META-INF/MANIFEST.MF rename to balinusa.midsuit.project/META-INF/MANIFEST.MF index 923d08f..591f1a2 100644 --- a/andromeida.midsuit.project/META-INF/MANIFEST.MF +++ b/balinusa.midsuit.project/META-INF/MANIFEST.MF @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 -Bundle-Name: Andromedia Midsuit -Bundle-SymbolicName: andromedia.midsuit.project +Bundle-Name: Balinusa +Bundle-SymbolicName: balinusa.midsuit.project Bundle-Version: 1.0.0.qualifier Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.adempiere.base;bundle-version="5.1.0", @@ -20,7 +20,7 @@ Import-Package: org.compiere.apps, org.compiere.minigrid, org.compiere.process, org.osgi.framework;version="1.8.0" -Bundle-Activator: andromedia.midsuit.activator.Activator +Bundle-Activator: balinusa.midsuit.activator.Activator Bundle-ClassPath: ., META-INF/poi-3.9.jar, META-INF/bcprov-ext-jdk15on-160.jar, diff --git a/andromeida.midsuit.project/META-INF/bcprov-ext-jdk15on-160.jar b/balinusa.midsuit.project/META-INF/bcprov-ext-jdk15on-160.jar similarity index 100% rename from andromeida.midsuit.project/META-INF/bcprov-ext-jdk15on-160.jar rename to balinusa.midsuit.project/META-INF/bcprov-ext-jdk15on-160.jar diff --git a/andromeida.midsuit.project/META-INF/commons-lang-2.6.jar b/balinusa.midsuit.project/META-INF/commons-lang-2.6.jar similarity index 100% rename from andromeida.midsuit.project/META-INF/commons-lang-2.6.jar rename to balinusa.midsuit.project/META-INF/commons-lang-2.6.jar diff --git a/andromeida.midsuit.project/META-INF/commons-logging-1.1.1.jar b/balinusa.midsuit.project/META-INF/commons-logging-1.1.1.jar similarity index 100% rename from andromeida.midsuit.project/META-INF/commons-logging-1.1.1.jar rename to balinusa.midsuit.project/META-INF/commons-logging-1.1.1.jar diff --git a/andromeida.midsuit.project/META-INF/dom4j-1.6.1.jar b/balinusa.midsuit.project/META-INF/dom4j-1.6.1.jar similarity index 100% rename from andromeida.midsuit.project/META-INF/dom4j-1.6.1.jar rename to balinusa.midsuit.project/META-INF/dom4j-1.6.1.jar diff --git a/andromeida.midsuit.project/META-INF/hsqldb.jar b/balinusa.midsuit.project/META-INF/hsqldb.jar similarity index 100% rename from andromeida.midsuit.project/META-INF/hsqldb.jar rename to balinusa.midsuit.project/META-INF/hsqldb.jar diff --git a/andromeida.midsuit.project/META-INF/jackcess-2.1.3.jar b/balinusa.midsuit.project/META-INF/jackcess-2.1.3.jar similarity index 100% rename from andromeida.midsuit.project/META-INF/jackcess-2.1.3.jar rename to balinusa.midsuit.project/META-INF/jackcess-2.1.3.jar diff --git a/andromeida.midsuit.project/META-INF/jackcess-encrypt-2.1.4.jar b/balinusa.midsuit.project/META-INF/jackcess-encrypt-2.1.4.jar similarity index 100% rename from andromeida.midsuit.project/META-INF/jackcess-encrypt-2.1.4.jar rename to balinusa.midsuit.project/META-INF/jackcess-encrypt-2.1.4.jar diff --git a/andromeida.midsuit.project/META-INF/poi-3.9.jar b/balinusa.midsuit.project/META-INF/poi-3.9.jar similarity index 100% rename from andromeida.midsuit.project/META-INF/poi-3.9.jar rename to balinusa.midsuit.project/META-INF/poi-3.9.jar diff --git a/andromeida.midsuit.project/META-INF/poi-ooxml-3.9.jar b/balinusa.midsuit.project/META-INF/poi-ooxml-3.9.jar similarity index 100% rename from andromeida.midsuit.project/META-INF/poi-ooxml-3.9.jar rename to balinusa.midsuit.project/META-INF/poi-ooxml-3.9.jar diff --git a/andromeida.midsuit.project/META-INF/poi-ooxml-schemas-3.9.jar b/balinusa.midsuit.project/META-INF/poi-ooxml-schemas-3.9.jar similarity index 100% rename from andromeida.midsuit.project/META-INF/poi-ooxml-schemas-3.9.jar rename to balinusa.midsuit.project/META-INF/poi-ooxml-schemas-3.9.jar diff --git a/andromeida.midsuit.project/META-INF/ucanaccess-3.0.7.jar b/balinusa.midsuit.project/META-INF/ucanaccess-3.0.7.jar similarity index 100% rename from andromeida.midsuit.project/META-INF/ucanaccess-3.0.7.jar rename to balinusa.midsuit.project/META-INF/ucanaccess-3.0.7.jar diff --git a/andromeida.midsuit.project/META-INF/xmlbeans-2.3.0.jar b/balinusa.midsuit.project/META-INF/xmlbeans-2.3.0.jar similarity index 100% rename from andromeida.midsuit.project/META-INF/xmlbeans-2.3.0.jar rename to balinusa.midsuit.project/META-INF/xmlbeans-2.3.0.jar diff --git a/andromeida.midsuit.project/OSGI-INF/MID_CalloutFactory.xml b/balinusa.midsuit.project/OSGI-INF/MID_CalloutFactory.xml similarity index 100% rename from andromeida.midsuit.project/OSGI-INF/MID_CalloutFactory.xml rename to balinusa.midsuit.project/OSGI-INF/MID_CalloutFactory.xml diff --git a/andromeida.midsuit.project/OSGI-INF/MID_CreateFromFactory.xml b/balinusa.midsuit.project/OSGI-INF/MID_CreateFromFactory.xml similarity index 100% rename from andromeida.midsuit.project/OSGI-INF/MID_CreateFromFactory.xml rename to balinusa.midsuit.project/OSGI-INF/MID_CreateFromFactory.xml diff --git a/andromeida.midsuit.project/OSGI-INF/MID_DocFactory.xml b/balinusa.midsuit.project/OSGI-INF/MID_DocFactory.xml similarity index 100% rename from andromeida.midsuit.project/OSGI-INF/MID_DocFactory.xml rename to balinusa.midsuit.project/OSGI-INF/MID_DocFactory.xml diff --git a/andromeida.midsuit.project/OSGI-INF/MID_FormFactory.xml b/balinusa.midsuit.project/OSGI-INF/MID_FormFactory.xml similarity index 100% rename from andromeida.midsuit.project/OSGI-INF/MID_FormFactory.xml rename to balinusa.midsuit.project/OSGI-INF/MID_FormFactory.xml diff --git a/andromeida.midsuit.project/OSGI-INF/MID_ModelFactory.xml b/balinusa.midsuit.project/OSGI-INF/MID_ModelFactory.xml similarity index 100% rename from andromeida.midsuit.project/OSGI-INF/MID_ModelFactory.xml rename to balinusa.midsuit.project/OSGI-INF/MID_ModelFactory.xml diff --git a/andromeida.midsuit.project/OSGI-INF/MID_ProcessFactory.xml b/balinusa.midsuit.project/OSGI-INF/MID_ProcessFactory.xml similarity index 100% rename from andromeida.midsuit.project/OSGI-INF/MID_ProcessFactory.xml rename to balinusa.midsuit.project/OSGI-INF/MID_ProcessFactory.xml diff --git a/andromeida.midsuit.project/OSGI-INF/MID_ValidatorFactory.xml b/balinusa.midsuit.project/OSGI-INF/MID_ValidatorFactory.xml similarity index 100% rename from andromeida.midsuit.project/OSGI-INF/MID_ValidatorFactory.xml rename to balinusa.midsuit.project/OSGI-INF/MID_ValidatorFactory.xml diff --git a/balinusa.midsuit.project/bin/.gitignore b/balinusa.midsuit.project/bin/.gitignore new file mode 100644 index 0000000..8d23188 --- /dev/null +++ b/balinusa.midsuit.project/bin/.gitignore @@ -0,0 +1,2 @@ +/.DS_Store +/balinusa/ diff --git a/andromeida.midsuit.project/build.properties b/balinusa.midsuit.project/build.properties similarity index 100% rename from andromeida.midsuit.project/build.properties rename to balinusa.midsuit.project/build.properties diff --git a/andromeida.midsuit.project/bin/.DS_Store b/balinusa.midsuit.project/src/.DS_Store similarity index 100% rename from andromeida.midsuit.project/bin/.DS_Store rename to balinusa.midsuit.project/src/.DS_Store diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/activator/Activator.java b/balinusa.midsuit.project/src/balinusa/midsuit/activator/Activator.java similarity index 93% rename from andromeida.midsuit.project/src/balinusa/midsuit/activator/Activator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/activator/Activator.java index 8229c2f..8423e2d 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/activator/Activator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/activator/Activator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.activator; +package balinusa.midsuit.activator; import org.osgi.framework.BundleActivator; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutAnalysisQC.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutAnalysisQC.java similarity index 91% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutAnalysisQC.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutAnalysisQC.java index 08e59a6..ca1e2c0 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutAnalysisQC.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutAnalysisQC.java @@ -1,66 +1,66 @@ -package andromedia.midsuit.callout; - -import java.util.List; -import java.util.Properties; - -import org.adempiere.base.IColumnCallout; -import org.compiere.model.CalloutEngine; -import org.compiere.model.GridField; -import org.compiere.model.GridTab; -import org.compiere.model.MProduction; -import org.compiere.model.MProductionLine; -import org.compiere.model.Query; - -import andromedia.midsuit.model.MID_Analysis; -import andromedia.midsuit.model.MID_AnalysisPro; - -public class MID_CalloutAnalysisQC extends CalloutEngine implements IColumnCallout{ - - @Override - public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - // TODO Auto-generated method stub - if(value == null) return null; - - if(mField.getColumnName().equals(MProduction.COLUMNNAME_M_Production_ID)) { - setProductQuantity(ctx, WindowNo, mTab, mField, value, oldValue); - return setRawMaterial(ctx, WindowNo, mTab, mField, value, oldValue); - } - - return null; - - } - - public String setProductQuantity(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue){ - - String valueReturn = ""; - MProduction prod = new MProduction(ctx, (int) value, null); - - if (prod != null) { - mTab.setValue(MID_AnalysisPro.COLUMNNAME_M_Product_ID, prod.getM_Product_ID()); - mTab.setValue(MID_AnalysisPro.COLUMNNAME_Qty, prod.getProductionQty()); - } - mTab.setValue(MID_Analysis.COLUMNNAME_JumlahRM, valueReturn); - - - return null; - } - - public String setRawMaterial(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue){ - - String valueReturn = ""; - List productionLines = new Query(ctx, MProductionLine.Table_Name, "M_Production_ID = ? and isEndProduct='N'", null) - .setParameters(new Object[] {(int) value}) - .list(); - - for(MProductionLine productionLine : productionLines) { - if(productionLine != null) { - valueReturn += productionLine.getQtyUsed().toString() == null ? "0;" : productionLine.getQtyUsed().toString() + ";"; - } - } - - mTab.setValue(MID_Analysis.COLUMNNAME_JumlahRM, valueReturn); - - return ""; - } - -} +package balinusa.midsuit.callout; + +import java.util.List; +import java.util.Properties; + +import org.adempiere.base.IColumnCallout; +import org.compiere.model.CalloutEngine; +import org.compiere.model.GridField; +import org.compiere.model.GridTab; +import org.compiere.model.MProduction; +import org.compiere.model.MProductionLine; +import org.compiere.model.Query; + +import balinusa.midsuit.model.MID_Analysis; +import balinusa.midsuit.model.MID_AnalysisPro; + +public class MID_CalloutAnalysisQC extends CalloutEngine implements IColumnCallout{ + + @Override + public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + // TODO Auto-generated method stub + if(value == null) return null; + + if(mField.getColumnName().equals(MProduction.COLUMNNAME_M_Production_ID)) { + setProductQuantity(ctx, WindowNo, mTab, mField, value, oldValue); + return setRawMaterial(ctx, WindowNo, mTab, mField, value, oldValue); + } + + return null; + + } + + public String setProductQuantity(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue){ + + String valueReturn = ""; + MProduction prod = new MProduction(ctx, (int) value, null); + + if (prod != null) { + mTab.setValue(MID_AnalysisPro.COLUMNNAME_M_Product_ID, prod.getM_Product_ID()); + mTab.setValue(MID_AnalysisPro.COLUMNNAME_Qty, prod.getProductionQty()); + } + mTab.setValue(MID_Analysis.COLUMNNAME_JumlahRM, valueReturn); + + + return null; + } + + public String setRawMaterial(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue){ + + String valueReturn = ""; + List productionLines = new Query(ctx, MProductionLine.Table_Name, "M_Production_ID = ? and isEndProduct='N'", null) + .setParameters(new Object[] {(int) value}) + .list(); + + for(MProductionLine productionLine : productionLines) { + if(productionLine != null) { + valueReturn += productionLine.getQtyUsed().toString() == null ? "0;" : productionLine.getQtyUsed().toString() + ";"; + } + } + + mTab.setValue(MID_Analysis.COLUMNNAME_JumlahRM, valueReturn); + + return ""; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutCeisaUpload.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutCeisaUpload.java similarity index 89% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutCeisaUpload.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutCeisaUpload.java index 6120ee1..c977a22 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutCeisaUpload.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutCeisaUpload.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.callout; +package balinusa.midsuit.callout; import java.util.Properties; @@ -7,7 +7,7 @@ import org.compiere.model.CalloutEngine; import org.compiere.model.GridField; import org.compiere.model.GridTab; -import andromedia.midsuit.model.X_mid_ceisa_upload; +import balinusa.midsuit.model.X_mid_ceisa_upload; public class MID_CalloutCeisaUpload extends CalloutEngine implements IColumnCallout { diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInOut.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInOut.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInOut.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInOut.java index d48c5f5..20de099 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInOut.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInOut.java @@ -1,42 +1,42 @@ -package andromedia.midsuit.callout; - -import java.util.Properties; - -import org.adempiere.base.IColumnCallout; -import org.compiere.model.CalloutEngine; -import org.compiere.model.GridField; -import org.compiere.model.GridTab; -import org.compiere.model.MInOut; -import org.compiere.model.MOrder; - -public class MID_CalloutInOut extends CalloutEngine implements IColumnCallout{ - - @Override - public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - // TODO Auto-generated method stub - if(value == null) return null; - - if(mField.getColumnName().equals(MInOut.COLUMNNAME_MovementDate)) { - mTab.setValue(MInOut.COLUMNNAME_DateAcct, value); - } - -// if(mField.getColumnName().equals(MInOut.COLUMNNAME_C_Order_ID)) { -// setAJU(ctx, WindowNo, mTab, mField, value, oldValue); -// } - return null; - } - - public String setAJU(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - MOrder order = new MOrder(ctx, (int)value, null); - - if(order != null) { - mTab.setValue("noaju1", order.get_ValueAsString("noaju1") == null ? null : order.get_ValueAsString("noaju1")); - mTab.setValue("noaju2", order.get_ValueAsString("noaju2") == null ? null : order.get_ValueAsString("noaju2")); - mTab.setValue("noaju3", order.get_ValueAsString("noaju3") == null ? null : order.get_ValueAsString("noaju3")); - mTab.setValue("noaju4", order.get_ValueAsString("noaju4") == null ? null : order.get_ValueAsString("noaju4")); - } - - return null; - } - -} +package balinusa.midsuit.callout; + +import java.util.Properties; + +import org.adempiere.base.IColumnCallout; +import org.compiere.model.CalloutEngine; +import org.compiere.model.GridField; +import org.compiere.model.GridTab; +import org.compiere.model.MInOut; +import org.compiere.model.MOrder; + +public class MID_CalloutInOut extends CalloutEngine implements IColumnCallout{ + + @Override + public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + // TODO Auto-generated method stub + if(value == null) return null; + + if(mField.getColumnName().equals(MInOut.COLUMNNAME_MovementDate)) { + mTab.setValue(MInOut.COLUMNNAME_DateAcct, value); + } + +// if(mField.getColumnName().equals(MInOut.COLUMNNAME_C_Order_ID)) { +// setAJU(ctx, WindowNo, mTab, mField, value, oldValue); +// } + return null; + } + + public String setAJU(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + MOrder order = new MOrder(ctx, (int)value, null); + + if(order != null) { + mTab.setValue("noaju1", order.get_ValueAsString("noaju1") == null ? null : order.get_ValueAsString("noaju1")); + mTab.setValue("noaju2", order.get_ValueAsString("noaju2") == null ? null : order.get_ValueAsString("noaju2")); + mTab.setValue("noaju3", order.get_ValueAsString("noaju3") == null ? null : order.get_ValueAsString("noaju3")); + mTab.setValue("noaju4", order.get_ValueAsString("noaju4") == null ? null : order.get_ValueAsString("noaju4")); + } + + return null; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInOutLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInOutLine.java similarity index 93% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInOutLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInOutLine.java index 9dcb627..0011189 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInOutLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInOutLine.java @@ -1,34 +1,34 @@ -package andromedia.midsuit.callout; - -import java.util.Properties; - -import org.adempiere.base.IColumnCallout; -import org.compiere.model.CalloutEngine; -import org.compiere.model.GridField; -import org.compiere.model.GridTab; -import org.compiere.model.MInOutLine; -import org.compiere.model.MOrderLine; - -public class MID_CalloutInOutLine extends CalloutEngine implements IColumnCallout{ - - @Override - public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - // TODO Auto-generated method stub - if(value == null) return null; - - if(mField.getColumnName().equals(MInOutLine.COLUMNNAME_C_OrderLine_ID)) { - this.setDescription(ctx, WindowNo, mTab, mField, value, oldValue); - } - - return null; - } - - public String setDescription(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - MOrderLine ol = new MOrderLine(ctx, (int)value, null); - - mTab.setValue(MInOutLine.COLUMNNAME_Description, ol.getDescription() != null ? ol.getDescription() : null); - - return null; - } - -} +package balinusa.midsuit.callout; + +import java.util.Properties; + +import org.adempiere.base.IColumnCallout; +import org.compiere.model.CalloutEngine; +import org.compiere.model.GridField; +import org.compiere.model.GridTab; +import org.compiere.model.MInOutLine; +import org.compiere.model.MOrderLine; + +public class MID_CalloutInOutLine extends CalloutEngine implements IColumnCallout{ + + @Override + public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + // TODO Auto-generated method stub + if(value == null) return null; + + if(mField.getColumnName().equals(MInOutLine.COLUMNNAME_C_OrderLine_ID)) { + this.setDescription(ctx, WindowNo, mTab, mField, value, oldValue); + } + + return null; + } + + public String setDescription(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + MOrderLine ol = new MOrderLine(ctx, (int)value, null); + + mTab.setValue(MInOutLine.COLUMNNAME_Description, ol.getDescription() != null ? ol.getDescription() : null); + + return null; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInventoryLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInventoryLine.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInventoryLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInventoryLine.java index c4dac35..00295cc 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInventoryLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInventoryLine.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.callout; +package balinusa.midsuit.callout; import java.math.BigDecimal; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInventoryLineMA.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInventoryLineMA.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInventoryLineMA.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInventoryLineMA.java index 6dbd679..43f9f24 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInventoryLineMA.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutInventoryLineMA.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.callout; +package balinusa.midsuit.callout; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutIsReturnCeisa.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutIsReturnCeisa.java similarity index 87% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutIsReturnCeisa.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutIsReturnCeisa.java index 7d7e54a..3a5af11 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutIsReturnCeisa.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutIsReturnCeisa.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.callout; +package balinusa.midsuit.callout; import java.util.Properties; @@ -7,7 +7,7 @@ import org.compiere.model.CalloutEngine; import org.compiere.model.GridField; import org.compiere.model.GridTab; -import andromedia.midsuit.model.X_mid_ceisa_order; +import balinusa.midsuit.model.X_mid_ceisa_order; public class MID_CalloutIsReturnCeisa extends CalloutEngine implements IColumnCallout { diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutMovement.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutMovement.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutMovement.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutMovement.java index 987c94f..506bf1b 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutMovement.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutMovement.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.callout; +package balinusa.midsuit.callout; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutMovementLineMA.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutMovementLineMA.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutMovementLineMA.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutMovementLineMA.java index 4d38240..71f4871 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutMovementLineMA.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutMovementLineMA.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.callout; +package balinusa.midsuit.callout; import java.sql.Timestamp; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrder.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrder.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrder.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrder.java index 79e5764..5d4d5ba 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrder.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrder.java @@ -1,55 +1,55 @@ -package andromedia.midsuit.callout; - -import java.util.Properties; - -import org.adempiere.base.IColumnCallout; -import org.compiere.model.CalloutEngine; -import org.compiere.model.GridField; -import org.compiere.model.GridTab; -import org.compiere.model.MOrder; -import org.compiere.model.MPriceList; -import org.compiere.model.Query; -import org.compiere.util.Env; - -public class MID_CalloutOrder extends CalloutEngine implements IColumnCallout { - - @Override - public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - // TODO Auto-generated method stub - if(value == null) return null; - - if(mField.getColumnName().equals(MOrder.COLUMNNAME_AD_Org_ID)) { - return setPricelistByOrg(ctx, WindowNo, mTab, mField, value, oldValue); - } - if(mField.getColumnName().equals(MOrder.COLUMNNAME_DateOrdered)) { - mTab.setValue(MOrder.COLUMNNAME_DatePromised, value); - } - return null; - } - - public String setPricelistByOrg(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - - int org = (int) value; - int AD_Client_ID = (int) mTab.getValue(MOrder.COLUMNNAME_AD_Client_ID); - boolean isSOTrx = (boolean) mTab.getValue(MOrder.COLUMNNAME_IsSOTrx); - - int priceList = new Query(ctx, MPriceList.Table_Name, "AD_Org_ID =? AND IsSOPriceList =?", null) - .setParameters(new Object[] { org, isSOTrx }) - .setOnlyActiveRecords(true) - .firstId(); - - if(priceList>0) - mTab.setValue(MOrder.COLUMNNAME_M_PriceList_ID, priceList); - - else - { - priceList = new Query(ctx, MPriceList.Table_Name, "AD_Client_ID =? AND AD_Org_ID =? AND IsSOPriceList =?", null) - .setParameters(new Object[] {AD_Client_ID, 0, isSOTrx }) - .setOnlyActiveRecords(true) - .firstId(); - mTab.setValue(MOrder.COLUMNNAME_M_PriceList_ID, priceList); - } - Env.setContext(ctx, "#M_PriceList_ID", priceList); - return null; - } -} +package balinusa.midsuit.callout; + +import java.util.Properties; + +import org.adempiere.base.IColumnCallout; +import org.compiere.model.CalloutEngine; +import org.compiere.model.GridField; +import org.compiere.model.GridTab; +import org.compiere.model.MOrder; +import org.compiere.model.MPriceList; +import org.compiere.model.Query; +import org.compiere.util.Env; + +public class MID_CalloutOrder extends CalloutEngine implements IColumnCallout { + + @Override + public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + // TODO Auto-generated method stub + if(value == null) return null; + + if(mField.getColumnName().equals(MOrder.COLUMNNAME_AD_Org_ID)) { + return setPricelistByOrg(ctx, WindowNo, mTab, mField, value, oldValue); + } + if(mField.getColumnName().equals(MOrder.COLUMNNAME_DateOrdered)) { + mTab.setValue(MOrder.COLUMNNAME_DatePromised, value); + } + return null; + } + + public String setPricelistByOrg(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + + int org = (int) value; + int AD_Client_ID = (int) mTab.getValue(MOrder.COLUMNNAME_AD_Client_ID); + boolean isSOTrx = (boolean) mTab.getValue(MOrder.COLUMNNAME_IsSOTrx); + + int priceList = new Query(ctx, MPriceList.Table_Name, "AD_Org_ID =? AND IsSOPriceList =?", null) + .setParameters(new Object[] { org, isSOTrx }) + .setOnlyActiveRecords(true) + .firstId(); + + if(priceList>0) + mTab.setValue(MOrder.COLUMNNAME_M_PriceList_ID, priceList); + + else + { + priceList = new Query(ctx, MPriceList.Table_Name, "AD_Client_ID =? AND AD_Org_ID =? AND IsSOPriceList =?", null) + .setParameters(new Object[] {AD_Client_ID, 0, isSOTrx }) + .setOnlyActiveRecords(true) + .firstId(); + mTab.setValue(MOrder.COLUMNNAME_M_PriceList_ID, priceList); + } + Env.setContext(ctx, "#M_PriceList_ID", priceList); + return null; + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderCeisa.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderCeisa.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderCeisa.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderCeisa.java index 7dcf21a..dbb9c5b 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderCeisa.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderCeisa.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.callout; +package balinusa.midsuit.callout; import java.util.Properties; @@ -10,7 +10,7 @@ import org.compiere.model.MOrder; import org.compiere.model.MRMA; import org.compiere.model.MRequisition; -import andromedia.midsuit.model.X_mid_ceisa_order; +import balinusa.midsuit.model.X_mid_ceisa_order; public class MID_CalloutOrderCeisa extends CalloutEngine implements IColumnCallout { diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderLine.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderLine.java index 74bdea1..bfcb8e9 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderLine.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.callout; +package balinusa.midsuit.callout; import java.math.BigDecimal; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderLineMA.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderLineMA.java similarity index 93% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderLineMA.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderLineMA.java index 1cf6b10..bd799da 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderLineMA.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutOrderLineMA.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.callout; +package balinusa.midsuit.callout; import java.sql.Timestamp; import java.util.Properties; @@ -8,7 +8,8 @@ import org.compiere.model.CalloutEngine; import org.compiere.model.GridField; import org.compiere.model.GridTab; import org.compiere.util.DB; -import andromedia.midsuit.model.X_C_OrderLineMA; + +import balinusa.midsuit.model.X_C_OrderLineMA; public class MID_CalloutOrderLineMA extends CalloutEngine implements IColumnCallout { diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutPPO.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutPPO.java similarity index 88% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutPPO.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutPPO.java index c28ae2f..b3b942a 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutPPO.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutPPO.java @@ -1,31 +1,31 @@ -package andromedia.midsuit.callout; - -import java.util.Properties; - -import org.adempiere.base.IColumnCallout; -import org.compiere.model.CalloutEngine; -import org.compiere.model.GridField; -import org.compiere.model.GridTab; -import org.compiere.model.MProduct; - -import andromedia.midsuit.model.X_ps_ppo; - -public class MID_CalloutPPO extends CalloutEngine implements IColumnCallout{ - - @Override - public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - if(mField.getColumnName().equals(X_ps_ppo.COLUMNNAME_M_Product_ID)){ - return product(ctx, WindowNo, mTab, mField, value, oldValue); - } - return null; - } - - private String product(Properties ctx, int windowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - if (value==null) return ""; - - MProduct product = new MProduct(ctx, (int)value, null); - mTab.setValue("C_UOM_ID", product.getC_UOM_ID()); - return ""; - } - -} +package balinusa.midsuit.callout; + +import java.util.Properties; + +import org.adempiere.base.IColumnCallout; +import org.compiere.model.CalloutEngine; +import org.compiere.model.GridField; +import org.compiere.model.GridTab; +import org.compiere.model.MProduct; + +import balinusa.midsuit.model.X_ps_ppo; + +public class MID_CalloutPPO extends CalloutEngine implements IColumnCallout{ + + @Override + public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + if(mField.getColumnName().equals(X_ps_ppo.COLUMNNAME_M_Product_ID)){ + return product(ctx, WindowNo, mTab, mField, value, oldValue); + } + return null; + } + + private String product(Properties ctx, int windowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + if (value==null) return ""; + + MProduct product = new MProduct(ctx, (int)value, null); + mTab.setValue("C_UOM_ID", product.getC_UOM_ID()); + return ""; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutProduction.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutProduction.java similarity index 87% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutProduction.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutProduction.java index b11cf7b..4573c9e 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutProduction.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutProduction.java @@ -1,34 +1,35 @@ -package andromedia.midsuit.callout; - -import java.util.Properties; - -import org.adempiere.base.IColumnCallout; -import org.compiere.model.CalloutEngine; -import org.compiere.model.GridField; -import org.compiere.model.GridTab; -import org.compiere.model.MProduction; -import andromedia.midsuit.model.MID_PPO; -import andromedia.midsuit.model.X_M_Production; - -public class MID_CalloutProduction extends CalloutEngine implements IColumnCallout { - - @Override - public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - // TODO Auto-generated method stub - if(mField.getColumnName().equals(X_M_Production.COLUMNNAME_ps_ppo_ID)) { - if(value == null) return null; - setProductByPPO(ctx, WindowNo, mTab, mField, value, oldValue); - } - return null; - } - - public String setProductByPPO(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - MID_PPO ppo = new MID_PPO(ctx,(int)value, null); - - if(ppo != null && ppo.getM_Product_ID() > 0) { - mTab.setValue(MProduction.COLUMNNAME_M_Product_ID, ppo.getM_Product_ID()); - mTab.setValue(MProduction.COLUMNNAME_ProductionQty, ppo.getQtyOrdered()); - } - return null; - } -} +package balinusa.midsuit.callout; + +import java.util.Properties; + +import org.adempiere.base.IColumnCallout; +import org.compiere.model.CalloutEngine; +import org.compiere.model.GridField; +import org.compiere.model.GridTab; +import org.compiere.model.MProduction; + +import balinusa.midsuit.model.MID_PPO; +import balinusa.midsuit.model.X_M_Production; + +public class MID_CalloutProduction extends CalloutEngine implements IColumnCallout { + + @Override + public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + // TODO Auto-generated method stub + if(mField.getColumnName().equals(X_M_Production.COLUMNNAME_ps_ppo_ID)) { + if(value == null) return null; + setProductByPPO(ctx, WindowNo, mTab, mField, value, oldValue); + } + return null; + } + + public String setProductByPPO(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + MID_PPO ppo = new MID_PPO(ctx,(int)value, null); + + if(ppo != null && ppo.getM_Product_ID() > 0) { + mTab.setValue(MProduction.COLUMNNAME_M_Product_ID, ppo.getM_Product_ID()); + mTab.setValue(MProduction.COLUMNNAME_ProductionQty, ppo.getQtyOrdered()); + } + return null; + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutProductionLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutProductionLine.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutProductionLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutProductionLine.java index 9ff0e74..d0b2d43 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutProductionLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutProductionLine.java @@ -1,57 +1,57 @@ -package andromedia.midsuit.callout; - -import java.util.Properties; -import org.adempiere.base.IColumnCallout; -import org.compiere.model.CalloutEngine; -import org.compiere.model.GridField; -import org.compiere.model.GridTab; -import org.compiere.model.MProduct; -import org.compiere.util.Env; - -public class MID_CalloutProductionLine extends CalloutEngine implements IColumnCallout { - - @Override - public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - - if (mField.getColumnName().equals("isConvertUOM")) - return setUOM(ctx, WindowNo, mTab, mField, value, oldValue); - if (mField.getColumnName().equals("QtyEntered")) - return setConversion(ctx, WindowNo, mTab, mField, value, oldValue); - if (mField.getColumnName().equals("M_Product_ID")) - { - if(value==null) return ""; - MProduct pro = new MProduct(ctx, (int)value, null); - mTab.setValue("C_UOM_ID", pro.getC_UOM_ID()); - } - return null; - } - - public String setConversion(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, - Object oldValue) { - if (value == null || mTab.getValue("M_Product_ID") == null) { - return ""; - } -// BigDecimal QtyOrdered = MUOMConversion.convertProductFrom(Env.getCtx(), (int) mTab.getValue("M_Product_ID"), -// (int) mTab.getValue("C_UOM_To_ID"), (BigDecimal) mTab.getValue("QtyEntered")); -// if (QtyOrdered == null) -// QtyOrdered = (BigDecimal) mTab.getValue("QtyEntered"); -// -// mTab.setValue("QtyUsed", QtyOrdered); - - return ""; - } - - public String setUOM(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - if (value == null) - return ""; - if (mTab.getValue("M_Product_ID") == null) - return ""; - - MProduct product = new MProduct(Env.getCtx(), (int) mTab.getValue("M_Product_ID"), null); - mTab.setValue("QtyEntered", mTab.getValue("QtyUsed")); - mTab.setValue("C_UOM_ID", product.getC_UOM_ID()); - mTab.setValue("C_UOM_To_ID", product.getC_UOM_ID()); - - return ""; - } -} +package balinusa.midsuit.callout; + +import java.util.Properties; +import org.adempiere.base.IColumnCallout; +import org.compiere.model.CalloutEngine; +import org.compiere.model.GridField; +import org.compiere.model.GridTab; +import org.compiere.model.MProduct; +import org.compiere.util.Env; + +public class MID_CalloutProductionLine extends CalloutEngine implements IColumnCallout { + + @Override + public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + + if (mField.getColumnName().equals("isConvertUOM")) + return setUOM(ctx, WindowNo, mTab, mField, value, oldValue); + if (mField.getColumnName().equals("QtyEntered")) + return setConversion(ctx, WindowNo, mTab, mField, value, oldValue); + if (mField.getColumnName().equals("M_Product_ID")) + { + if(value==null) return ""; + MProduct pro = new MProduct(ctx, (int)value, null); + mTab.setValue("C_UOM_ID", pro.getC_UOM_ID()); + } + return null; + } + + public String setConversion(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, + Object oldValue) { + if (value == null || mTab.getValue("M_Product_ID") == null) { + return ""; + } +// BigDecimal QtyOrdered = MUOMConversion.convertProductFrom(Env.getCtx(), (int) mTab.getValue("M_Product_ID"), +// (int) mTab.getValue("C_UOM_To_ID"), (BigDecimal) mTab.getValue("QtyEntered")); +// if (QtyOrdered == null) +// QtyOrdered = (BigDecimal) mTab.getValue("QtyEntered"); +// +// mTab.setValue("QtyUsed", QtyOrdered); + + return ""; + } + + public String setUOM(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + if (value == null) + return ""; + if (mTab.getValue("M_Product_ID") == null) + return ""; + + MProduct product = new MProduct(Env.getCtx(), (int) mTab.getValue("M_Product_ID"), null); + mTab.setValue("QtyEntered", mTab.getValue("QtyUsed")); + mTab.setValue("C_UOM_ID", product.getC_UOM_ID()); + mTab.setValue("C_UOM_To_ID", product.getC_UOM_ID()); + + return ""; + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRMALineMA.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRMALineMA.java similarity index 90% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRMALineMA.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRMALineMA.java index a773b8c..1c5bf2e 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRMALineMA.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRMALineMA.java @@ -1,34 +1,35 @@ -package andromedia.midsuit.callout; - -import java.sql.Timestamp; -import java.util.Properties; - -import org.adempiere.base.IColumnCallout; -import org.compiere.model.CalloutEngine; -import org.compiere.model.GridField; -import org.compiere.model.GridTab; -import org.compiere.util.DB; -import andromedia.midsuit.model.X_C_OrderLineMA; - -public class MID_CalloutRMALineMA extends CalloutEngine implements IColumnCallout { - - @Override - public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { - // TODO Auto-generated method stub - if(value == null) return null; - if(mField.getColumnName().equals(X_C_OrderLineMA.COLUMNNAME_M_AttributeSetInstance_ID)) { - return setDateMaterialPolicy(ctx, WindowNo, mTab, mField, value, oldValue); - } - return null; - } - - private String setDateMaterialPolicy(Properties ctx, int windowNo, GridTab mTab, GridField mField, Object value, - Object oldValue) { - if(value==null) return ""; - Timestamp retValue = DB.getSQLValueTSEx(null, "SELECT DateMaterialPolicy FROM M_Storage WHERE M_AttributeSetInstance_ID =? ", new Object[] { (int)value }); - if(retValue!=null) - mTab.setValue(X_C_OrderLineMA.COLUMNNAME_DateMaterialPolicy, retValue); - return ""; - } - -} +package balinusa.midsuit.callout; + +import java.sql.Timestamp; +import java.util.Properties; + +import org.adempiere.base.IColumnCallout; +import org.compiere.model.CalloutEngine; +import org.compiere.model.GridField; +import org.compiere.model.GridTab; +import org.compiere.util.DB; + +import balinusa.midsuit.model.X_C_OrderLineMA; + +public class MID_CalloutRMALineMA extends CalloutEngine implements IColumnCallout { + + @Override + public String start(Properties ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { + // TODO Auto-generated method stub + if(value == null) return null; + if(mField.getColumnName().equals(X_C_OrderLineMA.COLUMNNAME_M_AttributeSetInstance_ID)) { + return setDateMaterialPolicy(ctx, WindowNo, mTab, mField, value, oldValue); + } + return null; + } + + private String setDateMaterialPolicy(Properties ctx, int windowNo, GridTab mTab, GridField mField, Object value, + Object oldValue) { + if(value==null) return ""; + Timestamp retValue = DB.getSQLValueTSEx(null, "SELECT DateMaterialPolicy FROM M_Storage WHERE M_AttributeSetInstance_ID =? ", new Object[] { (int)value }); + if(retValue!=null) + mTab.setValue(X_C_OrderLineMA.COLUMNNAME_DateMaterialPolicy, retValue); + return ""; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisition.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisition.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisition.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisition.java index a543d24..ec544cf 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisition.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisition.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.callout; +package balinusa.midsuit.callout; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisitionLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisitionLine.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisitionLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisitionLine.java index 8ac8df0..7225581 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisitionLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisitionLine.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.callout; +package balinusa.midsuit.callout; import java.math.BigDecimal; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisitionTrxLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisitionTrxLine.java similarity index 92% rename from andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisitionTrxLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisitionTrxLine.java index 67992dc..6eb9956 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisitionTrxLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/callout/MID_CalloutRequisitionTrxLine.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.callout; +package balinusa.midsuit.callout; import java.math.BigDecimal; import java.util.Properties; @@ -8,7 +8,7 @@ import org.compiere.model.CalloutEngine; import org.compiere.model.GridField; import org.compiere.model.GridTab; -import andromedia.midsuit.model.X_MID_RequisitionLine; +import balinusa.midsuit.model.X_MID_RequisitionLine; public class MID_CalloutRequisitionTrxLine extends CalloutEngine implements IColumnCallout{ diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocAllocationHdr.java b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocAllocationHdr.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocAllocationHdr.java rename to balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocAllocationHdr.java index dbf2791..2982b02 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocAllocationHdr.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocAllocationHdr.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.doc; +package balinusa.midsuit.doc; import java.math.BigDecimal; import java.sql.PreparedStatement; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocAnalysis.java b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocAnalysis.java similarity index 85% rename from andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocAnalysis.java rename to balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocAnalysis.java index 4314e62..6faa741 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocAnalysis.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocAnalysis.java @@ -1,35 +1,35 @@ -package andromedia.midsuit.doc; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.util.ArrayList; - -import org.compiere.acct.Doc; -import org.compiere.acct.Fact; -import org.compiere.model.MAcctSchema; - -import andromedia.midsuit.model.MID_Analysis; - -public class MID_DocAnalysis extends Doc { - - public MID_DocAnalysis (MAcctSchema as, ResultSet rs, String trxName) - { - super (as, MID_Analysis.class, rs, null, trxName); - } - - @Override - protected String loadDocumentDetails() { - return null; - } - - @Override - public BigDecimal getBalance() { - return BigDecimal.ZERO; - } - - @Override - public ArrayList createFacts(MAcctSchema as) { - ArrayList facts = new ArrayList(); - return facts; - } -} +package balinusa.midsuit.doc; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.util.ArrayList; + +import org.compiere.acct.Doc; +import org.compiere.acct.Fact; +import org.compiere.model.MAcctSchema; + +import balinusa.midsuit.model.MID_Analysis; + +public class MID_DocAnalysis extends Doc { + + public MID_DocAnalysis (MAcctSchema as, ResultSet rs, String trxName) + { + super (as, MID_Analysis.class, rs, null, trxName); + } + + @Override + protected String loadDocumentDetails() { + return null; + } + + @Override + public BigDecimal getBalance() { + return BigDecimal.ZERO; + } + + @Override + public ArrayList createFacts(MAcctSchema as) { + ArrayList facts = new ArrayList(); + return facts; + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocDDOrder.java b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocDDOrder.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocDDOrder.java rename to balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocDDOrder.java index 92ab518..010977d 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocDDOrder.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocDDOrder.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.doc; +package balinusa.midsuit.doc; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocInvoice.java b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocInvoice.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocInvoice.java rename to balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocInvoice.java index 1cc5709..664cae6 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocInvoice.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocInvoice.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.doc; +package balinusa.midsuit.doc; import java.math.BigDecimal; import java.sql.PreparedStatement; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocMRPPPO.java b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocMRPPPO.java similarity index 85% rename from andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocMRPPPO.java rename to balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocMRPPPO.java index 096794c..db5b840 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocMRPPPO.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocMRPPPO.java @@ -1,34 +1,35 @@ -package andromedia.midsuit.doc; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.util.ArrayList; - -import org.compiere.acct.Doc; -import org.compiere.acct.Fact; -import org.compiere.model.MAcctSchema; -import andromedia.midsuit.model.MID_PPO;; - -public class MID_DocMRPPPO extends Doc{ - - public MID_DocMRPPPO (MAcctSchema as, ResultSet rs, String trxName) - { - super (as, MID_PPO.class, rs, null, trxName); - } - - @Override - protected String loadDocumentDetails() { - return null; - } - - @Override - public BigDecimal getBalance() { - return BigDecimal.ZERO; - } - - @Override - public ArrayList createFacts(MAcctSchema as) { - ArrayList facts = new ArrayList(); - return facts; - } +package balinusa.midsuit.doc; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.util.ArrayList; + +import org.compiere.acct.Doc; +import org.compiere.acct.Fact; +import org.compiere.model.MAcctSchema; + +import balinusa.midsuit.model.MID_PPO;; + +public class MID_DocMRPPPO extends Doc{ + + public MID_DocMRPPPO (MAcctSchema as, ResultSet rs, String trxName) + { + super (as, MID_PPO.class, rs, null, trxName); + } + + @Override + protected String loadDocumentDetails() { + return null; + } + + @Override + public BigDecimal getBalance() { + return BigDecimal.ZERO; + } + + @Override + public ArrayList createFacts(MAcctSchema as) { + ArrayList facts = new ArrayList(); + return facts; + } } \ No newline at end of file diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocMatchInv.java b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocMatchInv.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocMatchInv.java rename to balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocMatchInv.java index 45eec34..4b801d1 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocMatchInv.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocMatchInv.java @@ -1,587 +1,587 @@ -/****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * - * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * - * This program is free software; you can redistribute it and/or modify it * - * under the terms version 2 of the GNU General Public License as published * - * by the Free Software Foundation. This program is distributed in the hope * - * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * - * See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along * - * with this program; if not, write to the Free Software Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * - * For the text or an alternative of this public license, you may reach us * - * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * - * or via info@compiere.org or http://www.compiere.org/license.html * - *****************************************************************************/ -package andromedia.midsuit.doc; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Savepoint; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.logging.Level; - -import org.adempiere.exceptions.AverageCostingZeroQtyException; -import org.compiere.acct.Doc; -import org.compiere.acct.Fact; -import org.compiere.acct.FactLine; -import org.compiere.model.I_C_Order; -import org.compiere.model.I_C_OrderLine; -import org.compiere.model.MAccount; -import org.compiere.model.MAcctSchema; -import org.compiere.model.MAcctSchemaElement; -import org.compiere.model.MConversionRate; -import org.compiere.model.MCostDetail; -import org.compiere.model.MInOut; -import org.compiere.model.MInOutLine; -import org.compiere.model.MInvoice; -import org.compiere.model.MInvoiceLine; -import org.compiere.model.MMatchInv; -import org.compiere.model.MOrderLandedCostAllocation; -import org.compiere.model.ProductCost; -import org.compiere.model.X_M_Cost; -import org.compiere.util.Env; -import org.compiere.util.Trx; - -/** - * Post MatchInv Documents. - *
- *  Table:              M_MatchInv (472)
- *  Document Types:     MXI
- *  
- * Update Costing Records - * @author Jorg Janke - * @version $Id: Doc_MatchInv.java,v 1.3 2006/07/30 00:53:33 jjanke Exp $ - * - * FR [ 1840016 ] Avoid usage of clearing accounts - subject to C_AcctSchema.IsPostIfClearingEqual - * Avoid posting if both accounts Not Invoiced Receipts and Inventory Clearing are equal - * BF [ 2789949 ] Multicurrency in matching posting - */ -public class MID_DocMatchInv extends Doc -{ - /** - * Constructor - * @param ass accounting schema - * @param rs record - * @param trxName trx - */ - public MID_DocMatchInv (MAcctSchema as, ResultSet rs, String trxName) - { - super(as, MMatchInv.class, rs, DOCTYPE_MatMatchInv, trxName); - } // Doc_MatchInv - - /** Invoice Line */ - private MInvoiceLine m_invoiceLine = null; - /** Material Receipt */ - private MInOutLine m_receiptLine = null; - - private ProductCost m_pc = null; - private MMatchInv m_matchInv; - - /** Commitments */ -// private DocLine[] m_commitments = null; - - /** - * Load Specific Document Details - * @return error message or null - */ - protected String loadDocumentDetails () - { - setC_Currency_ID (Doc.NO_CURRENCY); - m_matchInv = (MMatchInv)getPO(); - setDateDoc(m_matchInv.getDateTrx()); - setQty (m_matchInv.getQty()); - // Invoice Info - int C_InvoiceLine_ID = m_matchInv.getC_InvoiceLine_ID(); - m_invoiceLine = new MInvoiceLine (getCtx(), C_InvoiceLine_ID, getTrxName()); - // BP for NotInvoicedReceipts - int C_BPartner_ID = m_invoiceLine.getParent().getC_BPartner_ID(); - setC_BPartner_ID(C_BPartner_ID); - // - int M_InOutLine_ID = m_matchInv.getM_InOutLine_ID(); - m_receiptLine = new MInOutLine (getCtx(), M_InOutLine_ID, getTrxName()); - // - m_pc = new ProductCost (Env.getCtx(), - getM_Product_ID(), m_matchInv.getM_AttributeSetInstance_ID(), getTrxName()); - m_pc.setQty(getQty()); - - return null; - } // loadDocumentDetails - - - /************************************************************************** - * Get Source Currency Balance - subtracts line and tax amounts from total - no rounding - * @return Zero (always balanced) - */ - public BigDecimal getBalance() - { - return Env.ZERO; - } // getBalance - - - /** - * Create Facts (the accounting logic) for - * MXI. - * (single line) - *
-	 *      NotInvoicedReceipts     DR			(Receipt Org)
-	 *      InventoryClearing               CR
-	 *      InvoicePV               DR      CR  (difference)
-	 *  Commitment
-	 * 		Expense							CR
-	 * 		Offset					DR
-	 *  
- * @param as accounting schema - * @return Fact - */ - public ArrayList createFacts (MAcctSchema as) - { - ArrayList facts = new ArrayList(); - // Nothing to do - if (getM_Product_ID() == 0 // no Product - || getQty().signum() == 0 - || m_receiptLine.getMovementQty().signum() == 0) // Qty = 0 - { - if (log.isLoggable(Level.FINE)) log.fine("No Product/Qty - M_Product_ID=" + getM_Product_ID() - + ",Qty=" + getQty() + ",InOutQty=" + m_receiptLine.getMovementQty()); - return facts; - } -// MMatchInv matchInv = (MMatchInv)getPO(); - - // create Fact Header - Fact fact = new Fact(this, as, Fact.POST_Actual); - setC_Currency_ID (as.getC_Currency_ID()); - boolean isInterOrg = isInterOrg(as); - - /** Needs to be handeled in PO Matching as no Receipt info - if (m_pc.isService()) - { - log.fine("Service - skipped"); - return fact; - } - **/ - - - // NotInvoicedReceipt DR - // From Receipt - BigDecimal multiplier = getQty() - .divide(m_receiptLine.getMovementQty(), 12, BigDecimal.ROUND_HALF_UP) - .abs(); - FactLine dr = fact.createLine (null, - getAccount(Doc.ACCTTYPE_NotInvoicedReceipts, as), - as.getC_Currency_ID(), Env.ONE, null); // updated below - if (dr == null) - { - p_Error = "No Product Costs"; - return null; - } - dr.setQty(getQty()); - BigDecimal temp = dr.getAcctBalance(); - // Set AmtAcctCr/Dr from Receipt (sets also Project) - //if (m_matchInv.getReversal_ID() > 0) //@win - if (m_matchInv.getReversal_ID() > 0 && m_matchInv.getCreated().after(m_matchInv.getReversal().getCreated())) - { - if (!dr.updateReverseLine (MMatchInv.Table_ID, // Amt updated - m_matchInv.getReversal_ID(), 0, BigDecimal.ONE)) - { - p_Error = "Failed to create reversal entry"; - return null; - } - } - else - { - BigDecimal effMultiplier = multiplier; - if (getQty().signum() < 0) - effMultiplier = effMultiplier.negate(); - if (!dr.updateReverseLine (MInOut.Table_ID, // Amt updated - m_receiptLine.getM_InOut_ID(), m_receiptLine.getM_InOutLine_ID(), - effMultiplier)) - { - p_Error = "Mat.Receipt not posted yet"; - return null; - } - } - if (log.isLoggable(Level.FINE)) log.fine("CR - Amt(" + temp + "->" + dr.getAcctBalance() - + ") - " + dr.toString()); - - // InventoryClearing CR - // From Invoice - MAccount expense = m_pc.getAccount(ProductCost.ACCTTYPE_P_InventoryClearing, as); - if (m_pc.isService()) - expense = m_pc.getAccount(ProductCost.ACCTTYPE_P_Expense, as); - BigDecimal LineNetAmt = m_invoiceLine.getLineNetAmt(); - multiplier = getQty() - .divide(m_invoiceLine.getQtyInvoiced(), 12, BigDecimal.ROUND_HALF_UP) - .abs(); - if (multiplier.compareTo(Env.ONE) != 0) - LineNetAmt = LineNetAmt.multiply(multiplier); - if (m_pc.isService()) - LineNetAmt = dr.getAcctBalance(); // book out exact receipt amt - FactLine cr = null; - if (as.isAccrual()) - { - cr = fact.createLine (null, expense, - as.getC_Currency_ID(), null, LineNetAmt); // updated below - if (cr == null) - { - if (log.isLoggable(Level.FINE)) log.fine("Line Net Amt=0 - M_Product_ID=" + getM_Product_ID() - + ",Qty=" + getQty() + ",InOutQty=" + m_receiptLine.getMovementQty()); - - cr = fact.createLine (null, expense, as.getC_Currency_ID(), null, Env.ONE); - cr.setAmtAcctCr(BigDecimal.ZERO); - cr.setAmtSourceCr(BigDecimal.ZERO); - } - temp = cr.getAcctBalance(); - //if (m_matchInv.getReversal_ID() > 0) - if (m_matchInv.getReversal_ID() > 0 && m_matchInv.getCreated().after(m_matchInv.getReversal().getCreated())) - { - if (!cr.updateReverseLine (MMatchInv.Table_ID, // Amt updated - m_matchInv.getReversal_ID(), 0, BigDecimal.ONE)) - { - p_Error = "Failed to create reversal entry"; - return null; - } - } - else - { - cr.setQty(getQty().negate()); - BigDecimal effMultiplier = multiplier; - if (getQty().signum() < 0) - effMultiplier = effMultiplier.negate(); - - // Set AmtAcctCr/Dr from Invoice (sets also Project) - if (!cr.updateReverseLine (MInvoice.Table_ID, // Amt updated - m_invoiceLine.getC_Invoice_ID(), m_invoiceLine.getC_InvoiceLine_ID(), effMultiplier)) - { - p_Error = "Invoice not posted yet"; - return null; - } - } - if (log.isLoggable(Level.FINE)) log.fine("DR - Amt(" + temp + "->" + cr.getAcctBalance() - + ") - " + cr.toString()); - } - else // Cash Acct - { - MInvoice invoice = m_invoiceLine.getParent(); - if (as.getC_Currency_ID() != invoice.getC_Currency_ID()) - LineNetAmt = MConversionRate.convert(getCtx(), LineNetAmt, - invoice.getC_Currency_ID(), as.getC_Currency_ID(), - invoice.getDateAcct(), invoice.getC_ConversionType_ID(), - invoice.getAD_Client_ID(), invoice.getAD_Org_ID()); - cr = fact.createLine (null, expense, - as.getC_Currency_ID(), null, LineNetAmt); - //if (m_matchInv.getReversal_ID() > 0) - if (m_matchInv.getReversal_ID() > 0 && m_matchInv.getCreated().after(m_matchInv.getReversal().getCreated())) - { - if (!cr.updateReverseLine (MMatchInv.Table_ID, // Amt updated - m_matchInv.getReversal_ID(), 0, BigDecimal.ONE)) - { - p_Error = "Failed to create reversal entry"; - return null; - } - } - else - { - cr.setQty(getQty().multiply(multiplier).negate()); - } - } - if (m_matchInv.getReversal_ID() == 0) - { - cr.setC_Activity_ID(m_invoiceLine.getC_Activity_ID()); - cr.setC_Campaign_ID(m_invoiceLine.getC_Campaign_ID()); - cr.setC_Project_ID(m_invoiceLine.getC_Project_ID()); - cr.setC_ProjectPhase_ID(m_invoiceLine.getC_ProjectPhase_ID()); - cr.setC_ProjectTask_ID(m_invoiceLine.getC_ProjectTask_ID()); - cr.setC_UOM_ID(m_invoiceLine.getC_UOM_ID()); - cr.setUser1_ID(m_invoiceLine.getUser1_ID()); - cr.setUser2_ID(m_invoiceLine.getUser2_ID()); - } - else - { - updateFactLine(cr); - } - - //AZ Goodwill - //Desc: Source Not Balanced problem because Currency is Difference - PO=CNY but AP=USD - //see also Fact.java: checking for isMultiCurrency() - if (dr.getC_Currency_ID() != cr.getC_Currency_ID()) - setIsMultiCurrency(true); - //end AZ - - // Avoid usage of clearing accounts - // If both accounts Not Invoiced Receipts and Inventory Clearing are equal - // then remove the posting - - MAccount acct_db = dr.getAccount(); // not_invoiced_receipts - MAccount acct_cr = cr.getAccount(); // inventory_clearing - - if ((!as.isPostIfClearingEqual()) && acct_db.equals(acct_cr) && (!isInterOrg)) { - - BigDecimal debit = dr.getAmtSourceDr(); - BigDecimal credit = cr.getAmtSourceCr(); - - if (debit.compareTo(credit) == 0) { - fact.remove(dr); - fact.remove(cr); - } - - } - // End Avoid usage of clearing accounts - - - // Invoice Price Variance difference - BigDecimal ipv = cr.getAcctBalance().add(dr.getAcctBalance()).negate(); - processInvoicePriceVariance(as, fact, ipv); - - String error = createMatchInvCostDetail(as); - if (error != null && error.trim().length() > 0) - { - p_Error = error; - return null; - } - // - facts.add(fact); - - /** Commitment release ****/ -// if (as.isAccrual() && as.isCreatePOCommitment()) -// { -// fact = Doc_Order.getCommitmentRelease(as, this, -// getQty(), m_invoiceLine.getC_InvoiceLine_ID(), Env.ONE); -// if (fact == null) -// return null; -// facts.add(fact); -// } // Commitment - - return facts; - } // createFact - - - /** - * @param as - * @param fact - * @param ipv - */ - protected void processInvoicePriceVariance(MAcctSchema as, Fact fact, - BigDecimal ipv) { - if (ipv.signum() == 0) return; - - FactLine pv = fact.createLine(null, - m_pc.getAccount(ProductCost.ACCTTYPE_P_IPV, as), - as.getC_Currency_ID(), ipv); - updateFactLine(pv); - - MMatchInv matchInv = (MMatchInv)getPO(); - Trx trx = Trx.get(getTrxName(), false); - Savepoint savepoint = null; - boolean zeroQty = false; - try { - savepoint = trx.setSavepoint(null); - - if (!MCostDetail.createMatchInvoice(as, m_invoiceLine.getAD_Org_ID(), - m_invoiceLine.getM_Product_ID(), m_invoiceLine.getM_AttributeSetInstance_ID(), - matchInv.getM_MatchInv_ID(), 0, - ipv, BigDecimal.ZERO, "Invoice Price Variance", getTrxName())) { - throw new RuntimeException("Failed to create cost detail record."); - } - } catch (SQLException e) { - throw new RuntimeException(e.getLocalizedMessage(), e); - } catch (AverageCostingZeroQtyException e) { - zeroQty = true; - try { - trx.rollback(savepoint); - savepoint = null; - } catch (SQLException e1) { - throw new RuntimeException(e1.getLocalizedMessage(), e1); - } - } finally { - if (savepoint != null) { - try { - trx.releaseSavepoint(savepoint); - } catch (SQLException e) {} - } - } - - String costingMethod = m_pc.getProduct().getCostingMethod(as); - MAccount account = m_pc.getAccount(ProductCost.ACCTTYPE_P_Asset, as); - if (m_pc.isService()) - account = m_pc.getAccount(ProductCost.ACCTTYPE_P_Expense, as); - if (X_M_Cost.COSTINGMETHOD_AveragePO.equals(costingMethod)) { - if (zeroQty) - account = m_pc.getAccount(ProductCost.ACCTTYPE_P_AverageCostVariance, as); -// FactLine line = fact.createLine(null, -// m_pc.getAccount(ProductCost.ACCTTYPE_P_IPV, as), -// as.getC_Currency_ID(), ipv.negate()); -// updateFactLine(line); - -// line = fact.createLine(null, account, as.getC_Currency_ID(), ipv); -// updateFactLine(line); - } else if (X_M_Cost.COSTINGMETHOD_AverageInvoice.equals(costingMethod) && !zeroQty) { - FactLine line = fact.createLine(null, - m_pc.getAccount(ProductCost.ACCTTYPE_P_IPV, as), - as.getC_Currency_ID(), ipv.negate()); - updateFactLine(line); - - line = fact.createLine(null, account, as.getC_Currency_ID(), ipv); - updateFactLine(line); - } - } - - /** Verify if the posting involves two or more organizations - @return true if there are more than one org involved on the posting - */ - private boolean isInterOrg(MAcctSchema as) { - MAcctSchemaElement elementorg = as.getAcctSchemaElement(MAcctSchemaElement.ELEMENTTYPE_Organization); - if (elementorg == null || !elementorg.isBalanced()) { - // no org element or not need to be balanced - return false; - } - - // verify if org of receipt line is different from org of invoice line - if (m_receiptLine != null && m_invoiceLine != null && m_receiptLine.getAD_Org_ID() != m_invoiceLine.getAD_Org_ID()) - return true; - - return false; - } - - // Elaine 2008/6/20 - private String createMatchInvCostDetail(MAcctSchema as) - { - if (m_invoiceLine != null && m_invoiceLine.get_ID() > 0 - && m_receiptLine != null && m_receiptLine.get_ID() > 0) - { - MMatchInv matchInv = (MMatchInv)getPO(); - - BigDecimal LineNetAmt = m_invoiceLine.getLineNetAmt(); - BigDecimal multiplier = getQty() - .divide(m_invoiceLine.getQtyInvoiced(), 12, BigDecimal.ROUND_HALF_UP) - .abs(); - if (multiplier.compareTo(Env.ONE) != 0) - LineNetAmt = LineNetAmt.multiply(multiplier); - - // MZ Goodwill - // Create Cost Detail Matched Invoice using Total Amount and Total Qty based on InvoiceLine - MMatchInv[] mInv = MMatchInv.getInvoiceLine(getCtx(), m_invoiceLine.getC_InvoiceLine_ID(), getTrxName()); - BigDecimal tQty = Env.ZERO; - BigDecimal tAmt = Env.ZERO; - for (int i = 0 ; i < mInv.length ; i++) - { - if (mInv[i].isPosted() && mInv[i].getM_MatchInv_ID() != get_ID() && mInv[i].getM_AttributeSetInstance_ID() == matchInv.getM_AttributeSetInstance_ID()) - { - tQty = tQty.add(mInv[i].getQty()); - multiplier = mInv[i].getQty() - .divide(m_invoiceLine.getQtyInvoiced(), 12, BigDecimal.ROUND_HALF_UP).abs(); - tAmt = tAmt.add(m_invoiceLine.getLineNetAmt().multiply(multiplier)); - } - } - tAmt = tAmt.add(LineNetAmt); //Invoice Price - - // Different currency - MInvoice invoice = m_invoiceLine.getParent(); - if (as.getC_Currency_ID() != invoice.getC_Currency_ID()) - { - tAmt = MConversionRate.convert(getCtx(), tAmt, - invoice.getC_Currency_ID(), as.getC_Currency_ID(), - invoice.getDateAcct(), invoice.getC_ConversionType_ID(), - invoice.getAD_Client_ID(), invoice.getAD_Org_ID()); - if (tAmt == null) - { - return "AP Invoice not convertible - " + as.getName(); - } - } - - // set Qty to negative value when MovementType is Vendor Returns - MInOut receipt = m_receiptLine.getParent(); - if (receipt.getMovementType().equals(MInOut.MOVEMENTTYPE_VendorReturns)) - tQty = tQty.add(getQty().negate()); // Qty is set to negative value - else - tQty = tQty.add(getQty()); - - // Set Total Amount and Total Quantity from Matched Invoice - if (!MCostDetail.createInvoice(as, getAD_Org_ID(), - getM_Product_ID(), matchInv.getM_AttributeSetInstance_ID(), - m_invoiceLine.getC_InvoiceLine_ID(), 0, // No cost element - tAmt, tQty, getDescription(), getTrxName())) - { - return "Failed to create cost detail record"; - } - - Map landedCostMap = new LinkedHashMap(); - I_C_OrderLine orderLine = m_receiptLine.getC_OrderLine(); - if (orderLine == null) - return ""; - - int C_OrderLine_ID = orderLine.getC_OrderLine_ID(); - MOrderLandedCostAllocation[] allocations = MOrderLandedCostAllocation.getOfOrderLine(C_OrderLine_ID, getTrxName()); - for(MOrderLandedCostAllocation allocation : allocations) - { - BigDecimal totalAmt = allocation.getAmt(); - BigDecimal totalQty = allocation.getQty(); - BigDecimal amt = totalAmt.multiply(tQty).divide(totalQty, 12, BigDecimal.ROUND_HALF_UP); - if (orderLine.getC_Currency_ID() != as.getC_Currency_ID()) - { - I_C_Order order = orderLine.getC_Order(); - Timestamp dateAcct = order.getDateAcct(); - BigDecimal rate = MConversionRate.getRate( - order.getC_Currency_ID(), as.getC_Currency_ID(), - dateAcct, order.getC_ConversionType_ID(), - order.getAD_Client_ID(), order.getAD_Org_ID()); - if (rate == null) - { - p_Error = "Purchase Order not convertible - " + as.getName(); - return null; - } - amt = amt.multiply(rate); - if (amt.scale() > as.getCostingPrecision()) - amt = amt.setScale(as.getCostingPrecision(), BigDecimal.ROUND_HALF_UP); - } - int elementId = allocation.getC_OrderLandedCost().getM_CostElement_ID(); - BigDecimal elementAmt = landedCostMap.get(elementId); - if (elementAmt == null) - { - elementAmt = amt; - } - else - { - elementAmt = elementAmt.add(amt); - } - landedCostMap.put(elementId, elementAmt); - } - - for(Integer elementId : landedCostMap.keySet()) - { - BigDecimal amt = landedCostMap.get(elementId); - if (!MCostDetail.createShipment(as, getAD_Org_ID(), - getM_Product_ID(), matchInv.getM_AttributeSetInstance_ID(), - m_receiptLine.getM_InOutLine_ID(), elementId, - amt, tQty, getDescription(), false, getTrxName())) - { - return "Failed to create cost detail record"; - } - } - // end MZ - } - - return ""; - } - - /** - * @param factLine - */ - protected void updateFactLine(FactLine factLine) { - factLine.setC_Activity_ID(m_invoiceLine.getC_Activity_ID()); - factLine.setC_Campaign_ID(m_invoiceLine.getC_Campaign_ID()); - factLine.setC_Project_ID(m_invoiceLine.getC_Project_ID()); - factLine.setC_ProjectPhase_ID(m_invoiceLine.getC_ProjectPhase_ID()); - factLine.setC_ProjectTask_ID(m_invoiceLine.getC_ProjectTask_ID()); - factLine.setC_UOM_ID(m_invoiceLine.getC_UOM_ID()); - factLine.setUser1_ID(m_invoiceLine.getUser1_ID()); - factLine.setUser2_ID(m_invoiceLine.getUser2_ID()); - factLine.setM_Product_ID(m_invoiceLine.getM_Product_ID()); - factLine.setQty(getQty()); - } -} // Doc_MatchInv +/****************************************************************************** + * Product: Adempiere ERP & CRM Smart Business Solution * + * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program; if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + * For the text or an alternative of this public license, you may reach us * + * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * + * or via info@compiere.org or http://www.compiere.org/license.html * + *****************************************************************************/ +package balinusa.midsuit.doc; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Savepoint; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.logging.Level; + +import org.adempiere.exceptions.AverageCostingZeroQtyException; +import org.compiere.acct.Doc; +import org.compiere.acct.Fact; +import org.compiere.acct.FactLine; +import org.compiere.model.I_C_Order; +import org.compiere.model.I_C_OrderLine; +import org.compiere.model.MAccount; +import org.compiere.model.MAcctSchema; +import org.compiere.model.MAcctSchemaElement; +import org.compiere.model.MConversionRate; +import org.compiere.model.MCostDetail; +import org.compiere.model.MInOut; +import org.compiere.model.MInOutLine; +import org.compiere.model.MInvoice; +import org.compiere.model.MInvoiceLine; +import org.compiere.model.MMatchInv; +import org.compiere.model.MOrderLandedCostAllocation; +import org.compiere.model.ProductCost; +import org.compiere.model.X_M_Cost; +import org.compiere.util.Env; +import org.compiere.util.Trx; + +/** + * Post MatchInv Documents. + *
+ *  Table:              M_MatchInv (472)
+ *  Document Types:     MXI
+ *  
+ * Update Costing Records + * @author Jorg Janke + * @version $Id: Doc_MatchInv.java,v 1.3 2006/07/30 00:53:33 jjanke Exp $ + * + * FR [ 1840016 ] Avoid usage of clearing accounts - subject to C_AcctSchema.IsPostIfClearingEqual + * Avoid posting if both accounts Not Invoiced Receipts and Inventory Clearing are equal + * BF [ 2789949 ] Multicurrency in matching posting + */ +public class MID_DocMatchInv extends Doc +{ + /** + * Constructor + * @param ass accounting schema + * @param rs record + * @param trxName trx + */ + public MID_DocMatchInv (MAcctSchema as, ResultSet rs, String trxName) + { + super(as, MMatchInv.class, rs, DOCTYPE_MatMatchInv, trxName); + } // Doc_MatchInv + + /** Invoice Line */ + private MInvoiceLine m_invoiceLine = null; + /** Material Receipt */ + private MInOutLine m_receiptLine = null; + + private ProductCost m_pc = null; + private MMatchInv m_matchInv; + + /** Commitments */ +// private DocLine[] m_commitments = null; + + /** + * Load Specific Document Details + * @return error message or null + */ + protected String loadDocumentDetails () + { + setC_Currency_ID (Doc.NO_CURRENCY); + m_matchInv = (MMatchInv)getPO(); + setDateDoc(m_matchInv.getDateTrx()); + setQty (m_matchInv.getQty()); + // Invoice Info + int C_InvoiceLine_ID = m_matchInv.getC_InvoiceLine_ID(); + m_invoiceLine = new MInvoiceLine (getCtx(), C_InvoiceLine_ID, getTrxName()); + // BP for NotInvoicedReceipts + int C_BPartner_ID = m_invoiceLine.getParent().getC_BPartner_ID(); + setC_BPartner_ID(C_BPartner_ID); + // + int M_InOutLine_ID = m_matchInv.getM_InOutLine_ID(); + m_receiptLine = new MInOutLine (getCtx(), M_InOutLine_ID, getTrxName()); + // + m_pc = new ProductCost (Env.getCtx(), + getM_Product_ID(), m_matchInv.getM_AttributeSetInstance_ID(), getTrxName()); + m_pc.setQty(getQty()); + + return null; + } // loadDocumentDetails + + + /************************************************************************** + * Get Source Currency Balance - subtracts line and tax amounts from total - no rounding + * @return Zero (always balanced) + */ + public BigDecimal getBalance() + { + return Env.ZERO; + } // getBalance + + + /** + * Create Facts (the accounting logic) for + * MXI. + * (single line) + *
+	 *      NotInvoicedReceipts     DR			(Receipt Org)
+	 *      InventoryClearing               CR
+	 *      InvoicePV               DR      CR  (difference)
+	 *  Commitment
+	 * 		Expense							CR
+	 * 		Offset					DR
+	 *  
+ * @param as accounting schema + * @return Fact + */ + public ArrayList createFacts (MAcctSchema as) + { + ArrayList facts = new ArrayList(); + // Nothing to do + if (getM_Product_ID() == 0 // no Product + || getQty().signum() == 0 + || m_receiptLine.getMovementQty().signum() == 0) // Qty = 0 + { + if (log.isLoggable(Level.FINE)) log.fine("No Product/Qty - M_Product_ID=" + getM_Product_ID() + + ",Qty=" + getQty() + ",InOutQty=" + m_receiptLine.getMovementQty()); + return facts; + } +// MMatchInv matchInv = (MMatchInv)getPO(); + + // create Fact Header + Fact fact = new Fact(this, as, Fact.POST_Actual); + setC_Currency_ID (as.getC_Currency_ID()); + boolean isInterOrg = isInterOrg(as); + + /** Needs to be handeled in PO Matching as no Receipt info + if (m_pc.isService()) + { + log.fine("Service - skipped"); + return fact; + } + **/ + + + // NotInvoicedReceipt DR + // From Receipt + BigDecimal multiplier = getQty() + .divide(m_receiptLine.getMovementQty(), 12, BigDecimal.ROUND_HALF_UP) + .abs(); + FactLine dr = fact.createLine (null, + getAccount(Doc.ACCTTYPE_NotInvoicedReceipts, as), + as.getC_Currency_ID(), Env.ONE, null); // updated below + if (dr == null) + { + p_Error = "No Product Costs"; + return null; + } + dr.setQty(getQty()); + BigDecimal temp = dr.getAcctBalance(); + // Set AmtAcctCr/Dr from Receipt (sets also Project) + //if (m_matchInv.getReversal_ID() > 0) //@win + if (m_matchInv.getReversal_ID() > 0 && m_matchInv.getCreated().after(m_matchInv.getReversal().getCreated())) + { + if (!dr.updateReverseLine (MMatchInv.Table_ID, // Amt updated + m_matchInv.getReversal_ID(), 0, BigDecimal.ONE)) + { + p_Error = "Failed to create reversal entry"; + return null; + } + } + else + { + BigDecimal effMultiplier = multiplier; + if (getQty().signum() < 0) + effMultiplier = effMultiplier.negate(); + if (!dr.updateReverseLine (MInOut.Table_ID, // Amt updated + m_receiptLine.getM_InOut_ID(), m_receiptLine.getM_InOutLine_ID(), + effMultiplier)) + { + p_Error = "Mat.Receipt not posted yet"; + return null; + } + } + if (log.isLoggable(Level.FINE)) log.fine("CR - Amt(" + temp + "->" + dr.getAcctBalance() + + ") - " + dr.toString()); + + // InventoryClearing CR + // From Invoice + MAccount expense = m_pc.getAccount(ProductCost.ACCTTYPE_P_InventoryClearing, as); + if (m_pc.isService()) + expense = m_pc.getAccount(ProductCost.ACCTTYPE_P_Expense, as); + BigDecimal LineNetAmt = m_invoiceLine.getLineNetAmt(); + multiplier = getQty() + .divide(m_invoiceLine.getQtyInvoiced(), 12, BigDecimal.ROUND_HALF_UP) + .abs(); + if (multiplier.compareTo(Env.ONE) != 0) + LineNetAmt = LineNetAmt.multiply(multiplier); + if (m_pc.isService()) + LineNetAmt = dr.getAcctBalance(); // book out exact receipt amt + FactLine cr = null; + if (as.isAccrual()) + { + cr = fact.createLine (null, expense, + as.getC_Currency_ID(), null, LineNetAmt); // updated below + if (cr == null) + { + if (log.isLoggable(Level.FINE)) log.fine("Line Net Amt=0 - M_Product_ID=" + getM_Product_ID() + + ",Qty=" + getQty() + ",InOutQty=" + m_receiptLine.getMovementQty()); + + cr = fact.createLine (null, expense, as.getC_Currency_ID(), null, Env.ONE); + cr.setAmtAcctCr(BigDecimal.ZERO); + cr.setAmtSourceCr(BigDecimal.ZERO); + } + temp = cr.getAcctBalance(); + //if (m_matchInv.getReversal_ID() > 0) + if (m_matchInv.getReversal_ID() > 0 && m_matchInv.getCreated().after(m_matchInv.getReversal().getCreated())) + { + if (!cr.updateReverseLine (MMatchInv.Table_ID, // Amt updated + m_matchInv.getReversal_ID(), 0, BigDecimal.ONE)) + { + p_Error = "Failed to create reversal entry"; + return null; + } + } + else + { + cr.setQty(getQty().negate()); + BigDecimal effMultiplier = multiplier; + if (getQty().signum() < 0) + effMultiplier = effMultiplier.negate(); + + // Set AmtAcctCr/Dr from Invoice (sets also Project) + if (!cr.updateReverseLine (MInvoice.Table_ID, // Amt updated + m_invoiceLine.getC_Invoice_ID(), m_invoiceLine.getC_InvoiceLine_ID(), effMultiplier)) + { + p_Error = "Invoice not posted yet"; + return null; + } + } + if (log.isLoggable(Level.FINE)) log.fine("DR - Amt(" + temp + "->" + cr.getAcctBalance() + + ") - " + cr.toString()); + } + else // Cash Acct + { + MInvoice invoice = m_invoiceLine.getParent(); + if (as.getC_Currency_ID() != invoice.getC_Currency_ID()) + LineNetAmt = MConversionRate.convert(getCtx(), LineNetAmt, + invoice.getC_Currency_ID(), as.getC_Currency_ID(), + invoice.getDateAcct(), invoice.getC_ConversionType_ID(), + invoice.getAD_Client_ID(), invoice.getAD_Org_ID()); + cr = fact.createLine (null, expense, + as.getC_Currency_ID(), null, LineNetAmt); + //if (m_matchInv.getReversal_ID() > 0) + if (m_matchInv.getReversal_ID() > 0 && m_matchInv.getCreated().after(m_matchInv.getReversal().getCreated())) + { + if (!cr.updateReverseLine (MMatchInv.Table_ID, // Amt updated + m_matchInv.getReversal_ID(), 0, BigDecimal.ONE)) + { + p_Error = "Failed to create reversal entry"; + return null; + } + } + else + { + cr.setQty(getQty().multiply(multiplier).negate()); + } + } + if (m_matchInv.getReversal_ID() == 0) + { + cr.setC_Activity_ID(m_invoiceLine.getC_Activity_ID()); + cr.setC_Campaign_ID(m_invoiceLine.getC_Campaign_ID()); + cr.setC_Project_ID(m_invoiceLine.getC_Project_ID()); + cr.setC_ProjectPhase_ID(m_invoiceLine.getC_ProjectPhase_ID()); + cr.setC_ProjectTask_ID(m_invoiceLine.getC_ProjectTask_ID()); + cr.setC_UOM_ID(m_invoiceLine.getC_UOM_ID()); + cr.setUser1_ID(m_invoiceLine.getUser1_ID()); + cr.setUser2_ID(m_invoiceLine.getUser2_ID()); + } + else + { + updateFactLine(cr); + } + + //AZ Goodwill + //Desc: Source Not Balanced problem because Currency is Difference - PO=CNY but AP=USD + //see also Fact.java: checking for isMultiCurrency() + if (dr.getC_Currency_ID() != cr.getC_Currency_ID()) + setIsMultiCurrency(true); + //end AZ + + // Avoid usage of clearing accounts + // If both accounts Not Invoiced Receipts and Inventory Clearing are equal + // then remove the posting + + MAccount acct_db = dr.getAccount(); // not_invoiced_receipts + MAccount acct_cr = cr.getAccount(); // inventory_clearing + + if ((!as.isPostIfClearingEqual()) && acct_db.equals(acct_cr) && (!isInterOrg)) { + + BigDecimal debit = dr.getAmtSourceDr(); + BigDecimal credit = cr.getAmtSourceCr(); + + if (debit.compareTo(credit) == 0) { + fact.remove(dr); + fact.remove(cr); + } + + } + // End Avoid usage of clearing accounts + + + // Invoice Price Variance difference + BigDecimal ipv = cr.getAcctBalance().add(dr.getAcctBalance()).negate(); + processInvoicePriceVariance(as, fact, ipv); + + String error = createMatchInvCostDetail(as); + if (error != null && error.trim().length() > 0) + { + p_Error = error; + return null; + } + // + facts.add(fact); + + /** Commitment release ****/ +// if (as.isAccrual() && as.isCreatePOCommitment()) +// { +// fact = Doc_Order.getCommitmentRelease(as, this, +// getQty(), m_invoiceLine.getC_InvoiceLine_ID(), Env.ONE); +// if (fact == null) +// return null; +// facts.add(fact); +// } // Commitment + + return facts; + } // createFact + + + /** + * @param as + * @param fact + * @param ipv + */ + protected void processInvoicePriceVariance(MAcctSchema as, Fact fact, + BigDecimal ipv) { + if (ipv.signum() == 0) return; + + FactLine pv = fact.createLine(null, + m_pc.getAccount(ProductCost.ACCTTYPE_P_IPV, as), + as.getC_Currency_ID(), ipv); + updateFactLine(pv); + + MMatchInv matchInv = (MMatchInv)getPO(); + Trx trx = Trx.get(getTrxName(), false); + Savepoint savepoint = null; + boolean zeroQty = false; + try { + savepoint = trx.setSavepoint(null); + + if (!MCostDetail.createMatchInvoice(as, m_invoiceLine.getAD_Org_ID(), + m_invoiceLine.getM_Product_ID(), m_invoiceLine.getM_AttributeSetInstance_ID(), + matchInv.getM_MatchInv_ID(), 0, + ipv, BigDecimal.ZERO, "Invoice Price Variance", getTrxName())) { + throw new RuntimeException("Failed to create cost detail record."); + } + } catch (SQLException e) { + throw new RuntimeException(e.getLocalizedMessage(), e); + } catch (AverageCostingZeroQtyException e) { + zeroQty = true; + try { + trx.rollback(savepoint); + savepoint = null; + } catch (SQLException e1) { + throw new RuntimeException(e1.getLocalizedMessage(), e1); + } + } finally { + if (savepoint != null) { + try { + trx.releaseSavepoint(savepoint); + } catch (SQLException e) {} + } + } + + String costingMethod = m_pc.getProduct().getCostingMethod(as); + MAccount account = m_pc.getAccount(ProductCost.ACCTTYPE_P_Asset, as); + if (m_pc.isService()) + account = m_pc.getAccount(ProductCost.ACCTTYPE_P_Expense, as); + if (X_M_Cost.COSTINGMETHOD_AveragePO.equals(costingMethod)) { + if (zeroQty) + account = m_pc.getAccount(ProductCost.ACCTTYPE_P_AverageCostVariance, as); +// FactLine line = fact.createLine(null, +// m_pc.getAccount(ProductCost.ACCTTYPE_P_IPV, as), +// as.getC_Currency_ID(), ipv.negate()); +// updateFactLine(line); + +// line = fact.createLine(null, account, as.getC_Currency_ID(), ipv); +// updateFactLine(line); + } else if (X_M_Cost.COSTINGMETHOD_AverageInvoice.equals(costingMethod) && !zeroQty) { + FactLine line = fact.createLine(null, + m_pc.getAccount(ProductCost.ACCTTYPE_P_IPV, as), + as.getC_Currency_ID(), ipv.negate()); + updateFactLine(line); + + line = fact.createLine(null, account, as.getC_Currency_ID(), ipv); + updateFactLine(line); + } + } + + /** Verify if the posting involves two or more organizations + @return true if there are more than one org involved on the posting + */ + private boolean isInterOrg(MAcctSchema as) { + MAcctSchemaElement elementorg = as.getAcctSchemaElement(MAcctSchemaElement.ELEMENTTYPE_Organization); + if (elementorg == null || !elementorg.isBalanced()) { + // no org element or not need to be balanced + return false; + } + + // verify if org of receipt line is different from org of invoice line + if (m_receiptLine != null && m_invoiceLine != null && m_receiptLine.getAD_Org_ID() != m_invoiceLine.getAD_Org_ID()) + return true; + + return false; + } + + // Elaine 2008/6/20 + private String createMatchInvCostDetail(MAcctSchema as) + { + if (m_invoiceLine != null && m_invoiceLine.get_ID() > 0 + && m_receiptLine != null && m_receiptLine.get_ID() > 0) + { + MMatchInv matchInv = (MMatchInv)getPO(); + + BigDecimal LineNetAmt = m_invoiceLine.getLineNetAmt(); + BigDecimal multiplier = getQty() + .divide(m_invoiceLine.getQtyInvoiced(), 12, BigDecimal.ROUND_HALF_UP) + .abs(); + if (multiplier.compareTo(Env.ONE) != 0) + LineNetAmt = LineNetAmt.multiply(multiplier); + + // MZ Goodwill + // Create Cost Detail Matched Invoice using Total Amount and Total Qty based on InvoiceLine + MMatchInv[] mInv = MMatchInv.getInvoiceLine(getCtx(), m_invoiceLine.getC_InvoiceLine_ID(), getTrxName()); + BigDecimal tQty = Env.ZERO; + BigDecimal tAmt = Env.ZERO; + for (int i = 0 ; i < mInv.length ; i++) + { + if (mInv[i].isPosted() && mInv[i].getM_MatchInv_ID() != get_ID() && mInv[i].getM_AttributeSetInstance_ID() == matchInv.getM_AttributeSetInstance_ID()) + { + tQty = tQty.add(mInv[i].getQty()); + multiplier = mInv[i].getQty() + .divide(m_invoiceLine.getQtyInvoiced(), 12, BigDecimal.ROUND_HALF_UP).abs(); + tAmt = tAmt.add(m_invoiceLine.getLineNetAmt().multiply(multiplier)); + } + } + tAmt = tAmt.add(LineNetAmt); //Invoice Price + + // Different currency + MInvoice invoice = m_invoiceLine.getParent(); + if (as.getC_Currency_ID() != invoice.getC_Currency_ID()) + { + tAmt = MConversionRate.convert(getCtx(), tAmt, + invoice.getC_Currency_ID(), as.getC_Currency_ID(), + invoice.getDateAcct(), invoice.getC_ConversionType_ID(), + invoice.getAD_Client_ID(), invoice.getAD_Org_ID()); + if (tAmt == null) + { + return "AP Invoice not convertible - " + as.getName(); + } + } + + // set Qty to negative value when MovementType is Vendor Returns + MInOut receipt = m_receiptLine.getParent(); + if (receipt.getMovementType().equals(MInOut.MOVEMENTTYPE_VendorReturns)) + tQty = tQty.add(getQty().negate()); // Qty is set to negative value + else + tQty = tQty.add(getQty()); + + // Set Total Amount and Total Quantity from Matched Invoice + if (!MCostDetail.createInvoice(as, getAD_Org_ID(), + getM_Product_ID(), matchInv.getM_AttributeSetInstance_ID(), + m_invoiceLine.getC_InvoiceLine_ID(), 0, // No cost element + tAmt, tQty, getDescription(), getTrxName())) + { + return "Failed to create cost detail record"; + } + + Map landedCostMap = new LinkedHashMap(); + I_C_OrderLine orderLine = m_receiptLine.getC_OrderLine(); + if (orderLine == null) + return ""; + + int C_OrderLine_ID = orderLine.getC_OrderLine_ID(); + MOrderLandedCostAllocation[] allocations = MOrderLandedCostAllocation.getOfOrderLine(C_OrderLine_ID, getTrxName()); + for(MOrderLandedCostAllocation allocation : allocations) + { + BigDecimal totalAmt = allocation.getAmt(); + BigDecimal totalQty = allocation.getQty(); + BigDecimal amt = totalAmt.multiply(tQty).divide(totalQty, 12, BigDecimal.ROUND_HALF_UP); + if (orderLine.getC_Currency_ID() != as.getC_Currency_ID()) + { + I_C_Order order = orderLine.getC_Order(); + Timestamp dateAcct = order.getDateAcct(); + BigDecimal rate = MConversionRate.getRate( + order.getC_Currency_ID(), as.getC_Currency_ID(), + dateAcct, order.getC_ConversionType_ID(), + order.getAD_Client_ID(), order.getAD_Org_ID()); + if (rate == null) + { + p_Error = "Purchase Order not convertible - " + as.getName(); + return null; + } + amt = amt.multiply(rate); + if (amt.scale() > as.getCostingPrecision()) + amt = amt.setScale(as.getCostingPrecision(), BigDecimal.ROUND_HALF_UP); + } + int elementId = allocation.getC_OrderLandedCost().getM_CostElement_ID(); + BigDecimal elementAmt = landedCostMap.get(elementId); + if (elementAmt == null) + { + elementAmt = amt; + } + else + { + elementAmt = elementAmt.add(amt); + } + landedCostMap.put(elementId, elementAmt); + } + + for(Integer elementId : landedCostMap.keySet()) + { + BigDecimal amt = landedCostMap.get(elementId); + if (!MCostDetail.createShipment(as, getAD_Org_ID(), + getM_Product_ID(), matchInv.getM_AttributeSetInstance_ID(), + m_receiptLine.getM_InOutLine_ID(), elementId, + amt, tQty, getDescription(), false, getTrxName())) + { + return "Failed to create cost detail record"; + } + } + // end MZ + } + + return ""; + } + + /** + * @param factLine + */ + protected void updateFactLine(FactLine factLine) { + factLine.setC_Activity_ID(m_invoiceLine.getC_Activity_ID()); + factLine.setC_Campaign_ID(m_invoiceLine.getC_Campaign_ID()); + factLine.setC_Project_ID(m_invoiceLine.getC_Project_ID()); + factLine.setC_ProjectPhase_ID(m_invoiceLine.getC_ProjectPhase_ID()); + factLine.setC_ProjectTask_ID(m_invoiceLine.getC_ProjectTask_ID()); + factLine.setC_UOM_ID(m_invoiceLine.getC_UOM_ID()); + factLine.setUser1_ID(m_invoiceLine.getUser1_ID()); + factLine.setUser2_ID(m_invoiceLine.getUser2_ID()); + factLine.setM_Product_ID(m_invoiceLine.getM_Product_ID()); + factLine.setQty(getQty()); + } +} // Doc_MatchInv diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocMidRequsiition.java b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocMidRequsiition.java similarity index 91% rename from andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocMidRequsiition.java rename to balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocMidRequsiition.java index 3e97aaf..203e9da 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocMidRequsiition.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocMidRequsiition.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.doc; +package balinusa.midsuit.doc; import java.math.BigDecimal; import java.sql.ResultSet; @@ -9,7 +9,7 @@ import org.compiere.acct.Fact; import org.compiere.model.MAcctSchema; import org.compiere.util.Env; -import andromedia.midsuit.model.MID_MRequisitionTrx; +import balinusa.midsuit.model.MID_MRequisitionTrx; public class MID_DocMidRequsiition extends Doc { diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocMovement.java b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocMovement.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocMovement.java rename to balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocMovement.java index 78b0fc4..3b63ef9 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/doc/MID_DocMovement.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/doc/MID_DocMovement.java @@ -1,272 +1,272 @@ -/****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * - * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * - * This program is free software; you can redistribute it and/or modify it * - * under the terms version 2 of the GNU General Public License as published * - * by the Free Software Foundation. This program is distributed in the hope * - * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * - * See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along * - * with this program; if not, write to the Free Software Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * - * For the text or an alternative of this public license, you may reach us * - * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * - * or via info@compiere.org or http://www.compiere.org/license.html * - *****************************************************************************/ -package andromedia.midsuit.doc; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.util.ArrayList; -import java.util.logging.Level; - -import org.compiere.acct.Doc; -import org.compiere.acct.DocLine; -import org.compiere.acct.Fact; -import org.compiere.acct.FactLine; -import org.compiere.model.MAcctSchema; -import org.compiere.model.MCostDetail; -import org.compiere.model.MMovement; -import org.compiere.model.MMovementLine; -import org.compiere.model.MMovementLineMA; -import org.compiere.model.MProduct; -import org.compiere.model.ProductCost; -import org.compiere.util.Env; - -/** - * Post Invoice Documents. - *
- *  Table:              M_Movement (323)
- *  Document Types:     MMM
- *  
- * @author Jorg Janke - * @author Armen Rizal, Goodwill Consulting - *
  • BF [ 1745154 ] Cost in Reversing Material Related Docs - * @version $Id: Doc_Movement.java,v 1.3 2006/07/30 00:53:33 jjanke Exp $ - */ -public class MID_DocMovement extends Doc -{ - private int m_Reversal_ID = 0; - @SuppressWarnings("unused") - private String m_DocStatus = ""; - - /** - * Constructor - * @param as accounting schema - * @param rs record - * @param trxName trx - */ - public MID_DocMovement (MAcctSchema as, ResultSet rs, String trxName) - { - super (as, MMovement.class, rs, DOCTYPE_MatMovement, trxName); - } // Doc_Movement - - /** - * Load Document Details - * @return error message or null - */ - protected String loadDocumentDetails() - { - setC_Currency_ID(NO_CURRENCY); - MMovement move = (MMovement)getPO(); - setDateDoc (move.getMovementDate()); - setDateAcct(move.getMovementDate()); - m_Reversal_ID = move.getReversal_ID();//store original (voided/reversed) document - m_DocStatus = move.getDocStatus(); - // Contained Objects - p_lines = loadLines(move); - if (log.isLoggable(Level.FINE)) log.fine("Lines=" + p_lines.length); - return null; - } // loadDocumentDetails - - /** - * Load Invoice Line - * @param move move - * @return document lines (DocLine_Material) - */ - private DocLine[] loadLines(MMovement move) - { - ArrayList list = new ArrayList(); - MMovementLine[] lines = move.getLines(false); - if(move.get_ValueAsBoolean("IsAsset")) - return new DocLine[0]; - for (int i = 0; i < lines.length; i++) - { - MMovementLine line = lines[i]; - DocLine docLine = new DocLine (line, this); - docLine.setQty(line.getMovementQty(), false); - docLine.setReversalLine_ID(line.getReversalLine_ID()); - if (log.isLoggable(Level.FINE)) log.fine(docLine.toString()); - list.add (docLine); - } - - // Return Array - DocLine[] dls = new DocLine[list.size()]; - list.toArray(dls); - return dls; - } // loadLines - - /** - * Get Balance - * @return balance (ZERO) - always balanced - */ - public BigDecimal getBalance() - { - BigDecimal retValue = Env.ZERO; - return retValue; - } // getBalance - - /** - * Create Facts (the accounting logic) for - * MMM. - *
    -	 *  Movement
    -	 *      Inventory       DR      CR
    -	 *      InventoryTo     DR      CR
    -	 *  
    - * @param as account schema - * @return Fact - */ - public ArrayList createFacts (MAcctSchema as) - { - // create Fact Header - Fact fact = new Fact(this, as, Fact.POST_Actual); - setC_Currency_ID(as.getC_Currency_ID()); - - // Line pointers - FactLine dr = null; - FactLine cr = null; - - for (int i = 0; i < p_lines.length; i++) - { - DocLine line = p_lines[i]; - BigDecimal costs = null; - - if (!isReversal(line)) - { - MProduct product = (MProduct) line.getProduct(); - String costingLevel = product.getCostingLevel(as); - if (MAcctSchema.COSTINGLEVEL_BatchLot.equals(costingLevel) ) - { - if (line.getM_AttributeSetInstance_ID() == 0 ) - { - MMovementLine mLine = (MMovementLine) line.getPO(); - MMovementLineMA mas[] = MMovementLineMA.get(getCtx(), mLine.get_ID(), getTrxName()); - if (mas != null && mas.length > 0 ) - { - costs = BigDecimal.ZERO; - for (int j = 0; j < mas.length; j++) - { - MMovementLineMA ma = mas[j]; - BigDecimal QtyMA = ma.getMovementQty(); - ProductCost pc = line.getProductCost(); - pc.setQty(QtyMA); - pc.setM_M_AttributeSetInstance_ID(ma.getM_AttributeSetInstance_ID()); - BigDecimal maCosts = line.getProductCosts(as, line.getAD_Org_ID(), true, "M_MovementLine_ID=? AND IsSOTrx='N'"); - - costs = costs.add(maCosts); - } - } - } - else - { - costs = line.getProductCosts(as, line.getAD_Org_ID(), true, "M_MovementLine_ID=? AND IsSOTrx='N'"); - } - } - else - { - // MZ Goodwill - // if Inventory Move CostDetail exist then get Cost from Cost Detail - costs = line.getProductCosts(as, line.getAD_Org_ID(), true, "M_MovementLine_ID=? AND IsSOTrx='N'"); - // end MZ - } - } - else - { - costs = BigDecimal.ZERO; - } - - // ** Inventory DR CR - dr = fact.createLine(line, - line.getAccount(ProductCost.ACCTTYPE_P_Asset, as), - as.getC_Currency_ID(), costs.negate()); // from (-) CR - if (dr == null) - continue; - dr.setM_Locator_ID(line.getM_Locator_ID()); - dr.setQty(line.getQty().negate()); // outgoing - if (isReversal(line)) - { - // Set AmtAcctDr from Original Movement - if (!dr.updateReverseLine (MMovement.Table_ID, - m_Reversal_ID, line.getReversalLine_ID(),Env.ONE)) - { - p_Error = "Original Inventory Move not posted yet"; - return null; - } - } - - // ** InventoryTo DR CR - cr = fact.createLine(line, - line.getAccount(ProductCost.ACCTTYPE_P_Asset, as), - as.getC_Currency_ID(), costs); // to (+) DR - if (cr == null) - continue; - cr.setM_Locator_ID(line.getM_LocatorTo_ID()); - cr.setQty(line.getQty()); - if (isReversal(line)) - { - // Set AmtAcctCr from Original Movement - if (!cr.updateReverseLine (MMovement.Table_ID, - m_Reversal_ID, line.getReversalLine_ID(),Env.ONE)) - { - p_Error = "Original Inventory Move not posted yet"; - return null; - } - costs = cr.getAcctBalance(); //get original cost - } - - // Only for between-org movements - if (dr.getAD_Org_ID() != cr.getAD_Org_ID()) - { - String costingLevel = line.getProduct().getCostingLevel(as); - if (!MAcctSchema.COSTINGLEVEL_Organization.equals(costingLevel)) - continue; - // - String description = line.getDescription(); - if (description == null) - description = ""; - // Cost Detail From - if (!MCostDetail.createMovement(as, dr.getAD_Org_ID(), // locator org - line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(), - line.get_ID(), 0, - costs.negate(), line.getQty().negate(), true, - description + "(|->)", getTrxName())) - { - p_Error = "Failed to create cost detail record"; - return null; - } - // Cost Detail To - if (!MCostDetail.createMovement(as, cr.getAD_Org_ID(), // locator org - line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(), - line.get_ID(), 0, - costs, line.getQty(), false, - description + "(|<-)", getTrxName())) - { - p_Error = "Failed to create cost detail record"; - return null; - } - } - } - - // - ArrayList facts = new ArrayList(); - facts.add(fact); - return facts; - } // createFact - - private boolean isReversal(DocLine line) { - return m_Reversal_ID !=0 && line.getReversalLine_ID() != 0; - } - -} // Doc_Movement +/****************************************************************************** + * Product: Adempiere ERP & CRM Smart Business Solution * + * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program; if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + * For the text or an alternative of this public license, you may reach us * + * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * + * or via info@compiere.org or http://www.compiere.org/license.html * + *****************************************************************************/ +package balinusa.midsuit.doc; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.logging.Level; + +import org.compiere.acct.Doc; +import org.compiere.acct.DocLine; +import org.compiere.acct.Fact; +import org.compiere.acct.FactLine; +import org.compiere.model.MAcctSchema; +import org.compiere.model.MCostDetail; +import org.compiere.model.MMovement; +import org.compiere.model.MMovementLine; +import org.compiere.model.MMovementLineMA; +import org.compiere.model.MProduct; +import org.compiere.model.ProductCost; +import org.compiere.util.Env; + +/** + * Post Invoice Documents. + *
    + *  Table:              M_Movement (323)
    + *  Document Types:     MMM
    + *  
    + * @author Jorg Janke + * @author Armen Rizal, Goodwill Consulting + *
  • BF [ 1745154 ] Cost in Reversing Material Related Docs + * @version $Id: Doc_Movement.java,v 1.3 2006/07/30 00:53:33 jjanke Exp $ + */ +public class MID_DocMovement extends Doc +{ + private int m_Reversal_ID = 0; + @SuppressWarnings("unused") + private String m_DocStatus = ""; + + /** + * Constructor + * @param as accounting schema + * @param rs record + * @param trxName trx + */ + public MID_DocMovement (MAcctSchema as, ResultSet rs, String trxName) + { + super (as, MMovement.class, rs, DOCTYPE_MatMovement, trxName); + } // Doc_Movement + + /** + * Load Document Details + * @return error message or null + */ + protected String loadDocumentDetails() + { + setC_Currency_ID(NO_CURRENCY); + MMovement move = (MMovement)getPO(); + setDateDoc (move.getMovementDate()); + setDateAcct(move.getMovementDate()); + m_Reversal_ID = move.getReversal_ID();//store original (voided/reversed) document + m_DocStatus = move.getDocStatus(); + // Contained Objects + p_lines = loadLines(move); + if (log.isLoggable(Level.FINE)) log.fine("Lines=" + p_lines.length); + return null; + } // loadDocumentDetails + + /** + * Load Invoice Line + * @param move move + * @return document lines (DocLine_Material) + */ + private DocLine[] loadLines(MMovement move) + { + ArrayList list = new ArrayList(); + MMovementLine[] lines = move.getLines(false); + if(move.get_ValueAsBoolean("IsAsset")) + return new DocLine[0]; + for (int i = 0; i < lines.length; i++) + { + MMovementLine line = lines[i]; + DocLine docLine = new DocLine (line, this); + docLine.setQty(line.getMovementQty(), false); + docLine.setReversalLine_ID(line.getReversalLine_ID()); + if (log.isLoggable(Level.FINE)) log.fine(docLine.toString()); + list.add (docLine); + } + + // Return Array + DocLine[] dls = new DocLine[list.size()]; + list.toArray(dls); + return dls; + } // loadLines + + /** + * Get Balance + * @return balance (ZERO) - always balanced + */ + public BigDecimal getBalance() + { + BigDecimal retValue = Env.ZERO; + return retValue; + } // getBalance + + /** + * Create Facts (the accounting logic) for + * MMM. + *
    +	 *  Movement
    +	 *      Inventory       DR      CR
    +	 *      InventoryTo     DR      CR
    +	 *  
    + * @param as account schema + * @return Fact + */ + public ArrayList createFacts (MAcctSchema as) + { + // create Fact Header + Fact fact = new Fact(this, as, Fact.POST_Actual); + setC_Currency_ID(as.getC_Currency_ID()); + + // Line pointers + FactLine dr = null; + FactLine cr = null; + + for (int i = 0; i < p_lines.length; i++) + { + DocLine line = p_lines[i]; + BigDecimal costs = null; + + if (!isReversal(line)) + { + MProduct product = (MProduct) line.getProduct(); + String costingLevel = product.getCostingLevel(as); + if (MAcctSchema.COSTINGLEVEL_BatchLot.equals(costingLevel) ) + { + if (line.getM_AttributeSetInstance_ID() == 0 ) + { + MMovementLine mLine = (MMovementLine) line.getPO(); + MMovementLineMA mas[] = MMovementLineMA.get(getCtx(), mLine.get_ID(), getTrxName()); + if (mas != null && mas.length > 0 ) + { + costs = BigDecimal.ZERO; + for (int j = 0; j < mas.length; j++) + { + MMovementLineMA ma = mas[j]; + BigDecimal QtyMA = ma.getMovementQty(); + ProductCost pc = line.getProductCost(); + pc.setQty(QtyMA); + pc.setM_M_AttributeSetInstance_ID(ma.getM_AttributeSetInstance_ID()); + BigDecimal maCosts = line.getProductCosts(as, line.getAD_Org_ID(), true, "M_MovementLine_ID=? AND IsSOTrx='N'"); + + costs = costs.add(maCosts); + } + } + } + else + { + costs = line.getProductCosts(as, line.getAD_Org_ID(), true, "M_MovementLine_ID=? AND IsSOTrx='N'"); + } + } + else + { + // MZ Goodwill + // if Inventory Move CostDetail exist then get Cost from Cost Detail + costs = line.getProductCosts(as, line.getAD_Org_ID(), true, "M_MovementLine_ID=? AND IsSOTrx='N'"); + // end MZ + } + } + else + { + costs = BigDecimal.ZERO; + } + + // ** Inventory DR CR + dr = fact.createLine(line, + line.getAccount(ProductCost.ACCTTYPE_P_Asset, as), + as.getC_Currency_ID(), costs.negate()); // from (-) CR + if (dr == null) + continue; + dr.setM_Locator_ID(line.getM_Locator_ID()); + dr.setQty(line.getQty().negate()); // outgoing + if (isReversal(line)) + { + // Set AmtAcctDr from Original Movement + if (!dr.updateReverseLine (MMovement.Table_ID, + m_Reversal_ID, line.getReversalLine_ID(),Env.ONE)) + { + p_Error = "Original Inventory Move not posted yet"; + return null; + } + } + + // ** InventoryTo DR CR + cr = fact.createLine(line, + line.getAccount(ProductCost.ACCTTYPE_P_Asset, as), + as.getC_Currency_ID(), costs); // to (+) DR + if (cr == null) + continue; + cr.setM_Locator_ID(line.getM_LocatorTo_ID()); + cr.setQty(line.getQty()); + if (isReversal(line)) + { + // Set AmtAcctCr from Original Movement + if (!cr.updateReverseLine (MMovement.Table_ID, + m_Reversal_ID, line.getReversalLine_ID(),Env.ONE)) + { + p_Error = "Original Inventory Move not posted yet"; + return null; + } + costs = cr.getAcctBalance(); //get original cost + } + + // Only for between-org movements + if (dr.getAD_Org_ID() != cr.getAD_Org_ID()) + { + String costingLevel = line.getProduct().getCostingLevel(as); + if (!MAcctSchema.COSTINGLEVEL_Organization.equals(costingLevel)) + continue; + // + String description = line.getDescription(); + if (description == null) + description = ""; + // Cost Detail From + if (!MCostDetail.createMovement(as, dr.getAD_Org_ID(), // locator org + line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(), + line.get_ID(), 0, + costs.negate(), line.getQty().negate(), true, + description + "(|->)", getTrxName())) + { + p_Error = "Failed to create cost detail record"; + return null; + } + // Cost Detail To + if (!MCostDetail.createMovement(as, cr.getAD_Org_ID(), // locator org + line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(), + line.get_ID(), 0, + costs, line.getQty(), false, + description + "(|<-)", getTrxName())) + { + p_Error = "Failed to create cost detail record"; + return null; + } + } + } + + // + ArrayList facts = new ArrayList(); + facts.add(fact); + return facts; + } // createFact + + private boolean isReversal(DocLine line) { + return m_Reversal_ID !=0 && line.getReversalLine_ID() != 0; + } + +} // Doc_Movement diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_CalloutFactory.java b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_CalloutFactory.java similarity index 62% rename from andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_CalloutFactory.java rename to balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_CalloutFactory.java index 8649c6f..922f31d 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_CalloutFactory.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_CalloutFactory.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.factory; +package balinusa.midsuit.factory; import java.util.ArrayList; import java.util.List; @@ -16,35 +16,35 @@ import org.compiere.model.MProductionLine; import org.compiere.model.X_C_OrderLine; import org.compiere.model.X_M_RequisitionLine; -import andromedia.midsuit.callout.MID_CalloutAnalysisQC; -import andromedia.midsuit.callout.MID_CalloutCeisaUpload; -import andromedia.midsuit.callout.MID_CalloutInOut; -import andromedia.midsuit.callout.MID_CalloutInOutLine; -import andromedia.midsuit.callout.MID_CalloutInventoryLine; -import andromedia.midsuit.callout.MID_CalloutInventoryLineMA; -import andromedia.midsuit.callout.MID_CalloutIsReturnCeisa; -import andromedia.midsuit.callout.MID_CalloutMovement; -import andromedia.midsuit.callout.MID_CalloutMovementLineMA; -import andromedia.midsuit.callout.MID_CalloutOrder; -import andromedia.midsuit.callout.MID_CalloutOrderCeisa; -import andromedia.midsuit.callout.MID_CalloutOrderLine; -import andromedia.midsuit.callout.MID_CalloutOrderLineMA; -import andromedia.midsuit.callout.MID_CalloutPPO; -import andromedia.midsuit.callout.MID_CalloutProduction; -import andromedia.midsuit.callout.MID_CalloutProductionLine; -import andromedia.midsuit.callout.MID_CalloutRMALineMA; -import andromedia.midsuit.callout.MID_CalloutRequisition; -import andromedia.midsuit.callout.MID_CalloutRequisitionLine; -import andromedia.midsuit.callout.MID_CalloutRequisitionTrxLine; -import andromedia.midsuit.model.MID_Analysis; -import andromedia.midsuit.model.MID_MMovement; -import andromedia.midsuit.model.X_C_OrderLineMA; -import andromedia.midsuit.model.X_MID_Requisition; -import andromedia.midsuit.model.X_MID_RequisitionLine; -import andromedia.midsuit.model.X_M_RMAMA; -import andromedia.midsuit.model.X_mid_ceisa_order; -import andromedia.midsuit.model.X_mid_ceisa_upload; -import andromedia.midsuit.model.X_ps_ppo; +import balinusa.midsuit.callout.MID_CalloutAnalysisQC; +import balinusa.midsuit.callout.MID_CalloutCeisaUpload; +import balinusa.midsuit.callout.MID_CalloutInOut; +import balinusa.midsuit.callout.MID_CalloutInOutLine; +import balinusa.midsuit.callout.MID_CalloutInventoryLine; +import balinusa.midsuit.callout.MID_CalloutInventoryLineMA; +import balinusa.midsuit.callout.MID_CalloutIsReturnCeisa; +import balinusa.midsuit.callout.MID_CalloutMovement; +import balinusa.midsuit.callout.MID_CalloutMovementLineMA; +import balinusa.midsuit.callout.MID_CalloutOrder; +import balinusa.midsuit.callout.MID_CalloutOrderCeisa; +import balinusa.midsuit.callout.MID_CalloutOrderLine; +import balinusa.midsuit.callout.MID_CalloutOrderLineMA; +import balinusa.midsuit.callout.MID_CalloutPPO; +import balinusa.midsuit.callout.MID_CalloutProduction; +import balinusa.midsuit.callout.MID_CalloutProductionLine; +import balinusa.midsuit.callout.MID_CalloutRMALineMA; +import balinusa.midsuit.callout.MID_CalloutRequisition; +import balinusa.midsuit.callout.MID_CalloutRequisitionLine; +import balinusa.midsuit.callout.MID_CalloutRequisitionTrxLine; +import balinusa.midsuit.model.MID_Analysis; +import balinusa.midsuit.model.MID_MMovement; +import balinusa.midsuit.model.X_C_OrderLineMA; +import balinusa.midsuit.model.X_MID_Requisition; +import balinusa.midsuit.model.X_MID_RequisitionLine; +import balinusa.midsuit.model.X_M_RMAMA; +import balinusa.midsuit.model.X_mid_ceisa_order; +import balinusa.midsuit.model.X_mid_ceisa_upload; +import balinusa.midsuit.model.X_ps_ppo; public class MID_CalloutFactory implements IColumnCalloutFactory{ diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_CreateFromFactory.java b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_CreateFromFactory.java similarity index 80% rename from andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_CreateFromFactory.java rename to balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_CreateFromFactory.java index aee2003..9330704 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_CreateFromFactory.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_CreateFromFactory.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.factory; +package balinusa.midsuit.factory; import java.util.logging.Logger; @@ -11,10 +11,10 @@ import org.compiere.model.X_M_InOut; import org.compiere.model.X_M_RMA; import org.compiere.util.CLogger; -import andromedia.midsuit.form.MID_WCreateFromInvoice; -import andromedia.midsuit.form.MID_WCreateFromOrder; -import andromedia.midsuit.form.MID_WCreateFromRMA; -import andromedia.midsuit.form.MID_WCreateFromShipment; +import balinusa.midsuit.form.MID_WCreateFromInvoice; +import balinusa.midsuit.form.MID_WCreateFromOrder; +import balinusa.midsuit.form.MID_WCreateFromRMA; +import balinusa.midsuit.form.MID_WCreateFromShipment; public class MID_CreateFromFactory implements ICreateFromFactory{ private CLogger log = CLogger.getCLogger(getClass()); diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_DocFactory.java b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_DocFactory.java similarity index 80% rename from andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_DocFactory.java rename to balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_DocFactory.java index b847508..7189443 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_DocFactory.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_DocFactory.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.factory; +package balinusa.midsuit.factory; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -16,18 +16,18 @@ import org.compiere.util.DB; import org.compiere.util.Env; import org.eevolution.model.MDDOrder; -import andromedia.midsuit.doc.MID_DocAllocationHdr; -import andromedia.midsuit.doc.MID_DocAnalysis; -import andromedia.midsuit.doc.MID_DocDDOrder; -import andromedia.midsuit.doc.MID_DocInvoice; -import andromedia.midsuit.doc.MID_DocMRPPPO; -import andromedia.midsuit.doc.MID_DocMatchInv; -import andromedia.midsuit.doc.MID_DocMidRequsiition; -import andromedia.midsuit.doc.MID_DocMovement; -import andromedia.midsuit.model.MID_Analysis; -import andromedia.midsuit.model.MID_MMovement; -import andromedia.midsuit.model.MID_MRequisitionTrx; -import andromedia.midsuit.model.MID_PPO; +import balinusa.midsuit.doc.MID_DocAllocationHdr; +import balinusa.midsuit.doc.MID_DocAnalysis; +import balinusa.midsuit.doc.MID_DocDDOrder; +import balinusa.midsuit.doc.MID_DocInvoice; +import balinusa.midsuit.doc.MID_DocMRPPPO; +import balinusa.midsuit.doc.MID_DocMatchInv; +import balinusa.midsuit.doc.MID_DocMidRequsiition; +import balinusa.midsuit.doc.MID_DocMovement; +import balinusa.midsuit.model.MID_Analysis; +import balinusa.midsuit.model.MID_MMovement; +import balinusa.midsuit.model.MID_MRequisitionTrx; +import balinusa.midsuit.model.MID_PPO; public class MID_DocFactory implements IDocFactory{ diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_FormFactory.java b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_FormFactory.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_FormFactory.java rename to balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_FormFactory.java index 36ab0cd..3907991 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_FormFactory.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_FormFactory.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.factory; +package balinusa.midsuit.factory; import java.util.logging.Level; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_ModelFactory.java b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_ModelFactory.java similarity index 73% rename from andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_ModelFactory.java rename to balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_ModelFactory.java index c42e3eb..c6f540e 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_ModelFactory.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_ModelFactory.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.factory; +package balinusa.midsuit.factory; import java.lang.reflect.Constructor; import java.sql.ResultSet; @@ -11,47 +11,47 @@ import org.compiere.model.MMovementLine; import org.compiere.model.PO; import org.compiere.util.Env; -import andromedia.midsuit.model.MID_Aging; -import andromedia.midsuit.model.MID_Analysis; -import andromedia.midsuit.model.MID_AnalysisLine; -import andromedia.midsuit.model.MID_AnalysisPro; -import andromedia.midsuit.model.MID_Ceisa_Order; -import andromedia.midsuit.model.MID_MAssetAddition; -import andromedia.midsuit.model.MID_MAssetDisposed; -import andromedia.midsuit.model.MID_MBillingList; -import andromedia.midsuit.model.MID_MBillingListLine; -import andromedia.midsuit.model.MID_MDDOrder; -import andromedia.midsuit.model.MID_MDDOrderLine; -import andromedia.midsuit.model.MID_MDepreciationEntry; -import andromedia.midsuit.model.MID_MInventory; -import andromedia.midsuit.model.MID_MInvoice; -import andromedia.midsuit.model.MID_MOrder; -import andromedia.midsuit.model.MID_MOrderLine; -import andromedia.midsuit.model.MID_MPayment; -import andromedia.midsuit.model.MID_MProductionConfirm; -import andromedia.midsuit.model.MID_MRequisition; -import andromedia.midsuit.model.MID_MRequisitionLine; -import andromedia.midsuit.model.MID_MRequisitionTrx; -import andromedia.midsuit.model.MID_MRequisitionTrxLine; -import andromedia.midsuit.model.MID_MRequsitionTax; -import andromedia.midsuit.model.MID_PPO; -import andromedia.midsuit.model.MID_PPOLine; -import andromedia.midsuit.model.MID_UnrealizedRate; -import andromedia.midsuit.model.MID_UnrealizedRateLine; -import andromedia.midsuit.model.MWarehouse; -import andromedia.midsuit.model.X_C_OrderLineMA; -import andromedia.midsuit.model.X_MID_UploadPEB; -import andromedia.midsuit.model.X_MID_UploadPEBLine; -import andromedia.midsuit.model.X_MID_UploadTPB; -import andromedia.midsuit.model.X_MID_UploadTPBLine; -import andromedia.midsuit.model.X_MID_UploadTPBLineDet; -import andromedia.midsuit.model.X_M_RMAMA; -import andromedia.midsuit.model.X_M_RequisitionTax; -import andromedia.midsuit.model.X_mid_ceisa_entitas; -import andromedia.midsuit.model.X_mid_ceisa_order; -import andromedia.midsuit.model.X_mid_ceisa_orderline; -import andromedia.midsuit.model.X_mid_ceisa_upload; -import andromedia.midsuit.model.X_zpos_Cashier; +import balinusa.midsuit.model.MID_Aging; +import balinusa.midsuit.model.MID_Analysis; +import balinusa.midsuit.model.MID_AnalysisLine; +import balinusa.midsuit.model.MID_AnalysisPro; +import balinusa.midsuit.model.MID_Ceisa_Order; +import balinusa.midsuit.model.MID_MAssetAddition; +import balinusa.midsuit.model.MID_MAssetDisposed; +import balinusa.midsuit.model.MID_MBillingList; +import balinusa.midsuit.model.MID_MBillingListLine; +import balinusa.midsuit.model.MID_MDDOrder; +import balinusa.midsuit.model.MID_MDDOrderLine; +import balinusa.midsuit.model.MID_MDepreciationEntry; +import balinusa.midsuit.model.MID_MInventory; +import balinusa.midsuit.model.MID_MInvoice; +import balinusa.midsuit.model.MID_MOrder; +import balinusa.midsuit.model.MID_MOrderLine; +import balinusa.midsuit.model.MID_MPayment; +import balinusa.midsuit.model.MID_MProductionConfirm; +import balinusa.midsuit.model.MID_MRequisition; +import balinusa.midsuit.model.MID_MRequisitionLine; +import balinusa.midsuit.model.MID_MRequisitionTrx; +import balinusa.midsuit.model.MID_MRequisitionTrxLine; +import balinusa.midsuit.model.MID_MRequsitionTax; +import balinusa.midsuit.model.MID_PPO; +import balinusa.midsuit.model.MID_PPOLine; +import balinusa.midsuit.model.MID_UnrealizedRate; +import balinusa.midsuit.model.MID_UnrealizedRateLine; +import balinusa.midsuit.model.MWarehouse; +import balinusa.midsuit.model.X_C_OrderLineMA; +import balinusa.midsuit.model.X_MID_UploadPEB; +import balinusa.midsuit.model.X_MID_UploadPEBLine; +import balinusa.midsuit.model.X_MID_UploadTPB; +import balinusa.midsuit.model.X_MID_UploadTPBLine; +import balinusa.midsuit.model.X_MID_UploadTPBLineDet; +import balinusa.midsuit.model.X_M_RMAMA; +import balinusa.midsuit.model.X_M_RequisitionTax; +import balinusa.midsuit.model.X_mid_ceisa_entitas; +import balinusa.midsuit.model.X_mid_ceisa_order; +import balinusa.midsuit.model.X_mid_ceisa_orderline; +import balinusa.midsuit.model.X_mid_ceisa_upload; +import balinusa.midsuit.model.X_zpos_Cashier; public class MID_ModelFactory implements IModelFactory{ private static HashMap mapTableModels = new HashMap(); diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_ProcessFactory.java b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_ProcessFactory.java similarity index 93% rename from andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_ProcessFactory.java rename to balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_ProcessFactory.java index e4ae2cb..f1205f6 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_ProcessFactory.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_ProcessFactory.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.factory; +package balinusa.midsuit.factory; import org.adempiere.base.IProcessFactory; import org.compiere.process.ProcessCall; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_ValidatorFactory.java b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_ValidatorFactory.java similarity index 87% rename from andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_ValidatorFactory.java rename to balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_ValidatorFactory.java index 85c16da..fa391e5 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/factory/MID_ValidatorFactory.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/factory/MID_ValidatorFactory.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.factory; +package balinusa.midsuit.factory; import org.adempiere.base.event.AbstractEventHandler; import org.adempiere.base.event.IEventTopics; @@ -26,23 +26,23 @@ import org.compiere.model.PO; import org.compiere.util.CLogger; import org.osgi.service.event.Event; -import andromedia.midsuit.model.X_M_RequisitionTax; -import andromedia.midsuit.validator.MID_CurrencyRateValidator; -import andromedia.midsuit.validator.MID_DeprWorkfileValidator; -import andromedia.midsuit.validator.MID_InOutValidator; -import andromedia.midsuit.validator.MID_InventoryLineMAValidator; -import andromedia.midsuit.validator.MID_InventoryLineValidator; -import andromedia.midsuit.validator.MID_InventoryValidator; -import andromedia.midsuit.validator.MID_InvoiceTaxValidator; -import andromedia.midsuit.validator.MID_JournalValidator; -import andromedia.midsuit.validator.MID_OrderLineValidator; -import andromedia.midsuit.validator.MID_OrderTaxValidator; -import andromedia.midsuit.validator.MID_OrderValidator; -import andromedia.midsuit.validator.MID_PaymentValidator; -import andromedia.midsuit.validator.MID_ProductValidator; -import andromedia.midsuit.validator.MID_ProductionLineValidator; -import andromedia.midsuit.validator.MID_ProductionValidator; -import andromedia.midsuit.validator.MID_RequisitionTaxValidator; +import balinusa.midsuit.model.X_M_RequisitionTax; +import balinusa.midsuit.validator.MID_CurrencyRateValidator; +import balinusa.midsuit.validator.MID_DeprWorkfileValidator; +import balinusa.midsuit.validator.MID_InOutValidator; +import balinusa.midsuit.validator.MID_InventoryLineMAValidator; +import balinusa.midsuit.validator.MID_InventoryLineValidator; +import balinusa.midsuit.validator.MID_InventoryValidator; +import balinusa.midsuit.validator.MID_InvoiceTaxValidator; +import balinusa.midsuit.validator.MID_JournalValidator; +import balinusa.midsuit.validator.MID_OrderLineValidator; +import balinusa.midsuit.validator.MID_OrderTaxValidator; +import balinusa.midsuit.validator.MID_OrderValidator; +import balinusa.midsuit.validator.MID_PaymentValidator; +import balinusa.midsuit.validator.MID_ProductValidator; +import balinusa.midsuit.validator.MID_ProductionLineValidator; +import balinusa.midsuit.validator.MID_ProductionValidator; +import balinusa.midsuit.validator.MID_RequisitionTaxValidator; public class MID_ValidatorFactory extends AbstractEventHandler { public CLogger log = CLogger.getCLogger(MID_ValidatorFactory.class); diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/BillingListGenerate.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/BillingListGenerate.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/BillingListGenerate.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/BillingListGenerate.java index bfd0b63..88514ad 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/BillingListGenerate.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/BillingListGenerate.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.form; +package balinusa.midsuit.form; import java.math.BigDecimal; import java.security.Timestamp; @@ -23,8 +23,8 @@ import org.compiere.util.KeyNamePair; import org.compiere.util.Msg; import org.compiere.util.Trx; -import andromedia.midsuit.model.MID_MBillingList; -import andromedia.midsuit.model.MID_MBillingListLine; +import balinusa.midsuit.model.MID_MBillingList; +import balinusa.midsuit.model.MID_MBillingListLine; public class BillingListGenerate extends GenForm { diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromInvoice.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromInvoice.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromInvoice.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromInvoice.java index 6f87d13..071c8d8 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromInvoice.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromInvoice.java @@ -1,635 +1,635 @@ -package andromedia.midsuit.form; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Vector; -import java.util.logging.Level; - -import org.compiere.apps.IStatusBar; -import org.compiere.grid.CreateFrom; -import org.compiere.minigrid.IMiniTable; -import org.compiere.model.GridTab; -import org.compiere.model.MCurrency; -import org.compiere.model.MInOut; -import org.compiere.model.MInOutLine; -import org.compiere.model.MInvoice; -import org.compiere.model.MInvoiceLine; -import org.compiere.model.MInvoicePaySchedule; -import org.compiere.model.MOrder; -import org.compiere.model.MOrderLine; -import org.compiere.model.MOrderPaySchedule; -import org.compiere.model.MOrg; -import org.compiere.model.MProduct; -import org.compiere.model.MRMA; -import org.compiere.model.MRMALine; -import org.compiere.model.MUOMConversion; -import org.compiere.model.PO; -import org.compiere.util.DB; -import org.compiere.util.DisplayType; -import org.compiere.util.Env; -import org.compiere.util.KeyNamePair; -import org.compiere.util.Msg; - -public abstract class MID_CreateFromInvoice extends CreateFrom { - - protected MInOut m_inout = null; - MOrg org = new MOrg(Env.getCtx(), Env.getAD_Org_ID(Env.getCtx()), null); - - /** - * Protected Constructor - * @param mTab MTab - */ - public MID_CreateFromInvoice(GridTab mTab) - { - super(mTab); - if (log.isLoggable(Level.INFO)) log.info(mTab.toString()); - } // VCreateFromInvoice - - /** - * Dynamic Init - * @return true if initialized - */ - public boolean dynInit() throws Exception - { - log.config(""); - setTitle(Msg.getElement(Env.getCtx(), "C_Invoice_ID", false) + " .. " + Msg.translate(Env.getCtx(), "CreateFrom")); - - return true; - } // dynInit - - /** - * Load PBartner dependent Order/Invoice/Shipment Field. - * @param C_BPartner_ID - */ - protected ArrayList loadShipmentData (int C_BPartner_ID) - { - String isSOTrxParam = isSOTrx ? "Y":"N"; - ArrayList list = new ArrayList(); - - // Display - StringBuffer display = new StringBuffer("s.DocumentNo||' - '||") - .append(DB.TO_CHAR("s.MovementDate", DisplayType.Date, Env.getAD_Language(Env.getCtx()))); - // - StringBuffer sql = new StringBuffer("SELECT s.M_InOut_ID,").append(display) - .append(" FROM M_InOut s " - + "WHERE s.C_BPartner_ID=? AND s.IsSOTrx=? AND s.DocStatus IN ('CL','CO')" - + " AND s.M_InOut_ID IN " - + "(SELECT sl.M_InOut_ID FROM M_InOutLine sl"); - if(!isSOTrx) - sql.append(" LEFT OUTER JOIN M_MatchInv mi ON (sl.M_InOutLine_ID=mi.M_InOutLine_ID) " - + " JOIN M_InOut s2 ON (sl.M_InOut_ID=s2.M_InOut_ID) " - + " WHERE s2.C_BPartner_ID=? AND s2.IsSOTrx=? AND s2.DocStatus IN ('CL','CO') " - + " GROUP BY sl.M_InOut_ID,sl.MovementQty,mi.M_InOutLine_ID" - + " HAVING (sl.MovementQty<>SUM(mi.Qty) AND mi.M_InOutLine_ID IS NOT NULL)" - + " OR mi.M_InOutLine_ID IS NULL "); - else - sql.append(" INNER JOIN M_InOut s2 ON (sl.M_InOut_ID=s2.M_InOut_ID)" - + " LEFT JOIN C_InvoiceLine il ON sl.M_InOutLine_ID = il.M_InOutLine_ID" - + " WHERE s2.C_BPartner_ID=? AND s2.IsSOTrx=? AND s2.DocStatus IN ('CL','CO')" - + " GROUP BY sl.M_InOutLine_ID" - + " HAVING sl.MovementQty - sum(COALESCE(il.QtyInvoiced,0)) > 0"); - sql.append(") ORDER BY s.MovementDate"); - PreparedStatement pstmt = null; - ResultSet rs = null; - try - { - pstmt = DB.prepareStatement(sql.toString(), null); - pstmt.setInt(1, C_BPartner_ID); - pstmt.setString(2, isSOTrxParam); - pstmt.setInt(3, C_BPartner_ID); - pstmt.setString(4, isSOTrxParam); - rs = pstmt.executeQuery(); - while (rs.next()) - { - list.add(new KeyNamePair(rs.getInt(1), rs.getString(2))); - } - } - catch (SQLException e) - { - log.log(Level.SEVERE, sql.toString(), e); - } - finally - { - DB.close(rs, pstmt); - rs = null; - pstmt = null; - } - - return list; - } - - /** - * Load PBartner dependent Order/Invoice/Shipment Field. - * @param C_BPartner_ID BPartner - */ - protected ArrayList loadRMAData(int C_BPartner_ID) { - ArrayList list = new ArrayList(); - - String sqlStmt = "SELECT r.M_RMA_ID, r.DocumentNo || '-' || r.Amt from M_RMA r " - + "WHERE ISSOTRX=? AND r.DocStatus in ('CO', 'CL') " - + "AND r.C_BPartner_ID=? " - + "AND NOT EXISTS (SELECT * FROM C_Invoice inv " - + "WHERE inv.M_RMA_ID=r.M_RMA_ID AND inv.DocStatus IN ('CO', 'CL'))"; - - PreparedStatement pstmt = null; - ResultSet rs = null; - try { - pstmt = DB.prepareStatement(sqlStmt, null); - pstmt.setString(1, isSOTrx? "Y" : "N"); - pstmt.setInt(2, C_BPartner_ID); - rs = pstmt.executeQuery(); - while (rs.next()) { - list.add(new KeyNamePair(rs.getInt(1), rs.getString(2))); - } - } catch (SQLException e) { - log.log(Level.SEVERE, sqlStmt.toString(), e); - } finally{ - DB.close(rs, pstmt); - rs = null; - pstmt = null; - } - - return list; - } - - /** - * Load Data - Shipment not invoiced - * @param M_InOut_ID InOut - */ - protected Vector> getShipmentData(int M_InOut_ID) - { - if (log.isLoggable(Level.CONFIG)) log.config("M_InOut_ID=" + M_InOut_ID); - MInOut inout = new MInOut(Env.getCtx(), M_InOut_ID, null); - p_order = null; - m_inout = inout; - if (inout.getC_Order_ID() != 0) - p_order = new MOrder (Env.getCtx(), inout.getC_Order_ID(), null); - - m_rma = null; - if (inout.getM_RMA_ID() != 0) - m_rma = new MRMA (Env.getCtx(), inout.getM_RMA_ID(), null); - - // - Vector> data = new Vector>(); - StringBuilder sql = new StringBuilder("SELECT "); // QtyEntered - if(!isSOTrx) - sql.append("l.MovementQty-SUM(COALESCE(mi.Qty, 0)),"); - else - sql.append("l.MovementQty-SUM(COALESCE(il.QtyInvoiced,0)),"); - sql.append(" l.QtyEntered/l.MovementQty," - + " l.C_UOM_ID, COALESCE(uom.UOMSymbol, uom.Name)," // 3..4 - + " l.M_Product_ID, p.Name, po.VendorProductNo, l.M_InOutLine_ID, l.Line," // 5..9 - + " l.C_OrderLine_ID " // 10 - + " FROM M_InOutLine l " - ); - if (Env.isBaseLanguage(Env.getCtx(), "C_UOM")) - sql.append(" LEFT OUTER JOIN C_UOM uom ON (l.C_UOM_ID=uom.C_UOM_ID)"); - else - sql.append(" LEFT OUTER JOIN C_UOM_Trl uom ON (l.C_UOM_ID=uom.C_UOM_ID AND uom.AD_Language='") - .append(Env.getAD_Language(Env.getCtx())).append("')"); - - sql.append(" LEFT OUTER JOIN M_Product p ON (l.M_Product_ID=p.M_Product_ID)") - .append(" INNER JOIN M_InOut io ON (l.M_InOut_ID=io.M_InOut_ID)"); - if(!isSOTrx) - sql.append(" LEFT OUTER JOIN M_MatchInv mi ON (l.M_InOutLine_ID=mi.M_InOutLine_ID)"); - else - sql.append(" LEFT JOIN C_InvoiceLine il ON l.M_InOutLine_ID = il.M_InOutLine_ID"); - sql.append(" LEFT OUTER JOIN M_Product_PO po ON (l.M_Product_ID = po.M_Product_ID AND io.C_BPartner_ID = po.C_BPartner_ID)") - - .append(" WHERE l.M_InOut_ID=? AND l.MovementQty<>0 ") - .append("GROUP BY l.MovementQty, l.QtyEntered/l.MovementQty, " - + "l.C_UOM_ID, COALESCE(uom.UOMSymbol, uom.Name), " - + "l.M_Product_ID, p.Name, po.VendorProductNo, l.M_InOutLine_ID, l.Line, l.C_OrderLine_ID "); - if(!isSOTrx) - sql.append(" HAVING l.MovementQty-SUM(COALESCE(mi.Qty, 0)) <>0"); - else - sql.append(" HAVING l.MovementQty-SUM(COALESCE(il.QtyInvoiced,0)) <>0"); - sql.append("ORDER BY l.Line"); - PreparedStatement pstmt = null; - ResultSet rs = null; - try - { - pstmt = DB.prepareStatement(sql.toString(), null); - pstmt.setInt(1, M_InOut_ID); - rs = pstmt.executeQuery(); - while (rs.next()) - { - Vector line = new Vector(7); - line.add(new Boolean(false)); // 0-Selection - BigDecimal qtyMovement = rs.getBigDecimal(1); - BigDecimal multiplier = rs.getBigDecimal(2); - BigDecimal qtyEntered = qtyMovement.multiply(multiplier); - line.add(qtyEntered); // 1-Qty - KeyNamePair pp = new KeyNamePair(rs.getInt(3), rs.getString(4).trim()); - line.add(pp); // 2-UOM - pp = new KeyNamePair(rs.getInt(5), rs.getString(6)); - line.add(pp); // 3-Product - line.add(rs.getString(7)); // 4-VendorProductNo - int C_OrderLine_ID = rs.getInt(10); - if (rs.wasNull()) - line.add(null); // 5-Order - else - line.add(new KeyNamePair(C_OrderLine_ID,".")); - pp = new KeyNamePair(rs.getInt(8), rs.getString(9)); - line.add(pp); // 6-Ship - line.add(null); // 7-RMA - data.add(line); - } - } - catch (SQLException e) - { - log.log(Level.SEVERE, sql.toString(), e); - } - finally - { - DB.close(rs, pstmt); - rs = null; - pstmt = null; - } - - return data; - } // loadShipment - - /** - * Load RMA details - * @param M_RMA_ID RMA - */ - protected Vector> getRMAData(int M_RMA_ID) - { - p_order = null; - -// MRMA m_rma = new MRMA(Env.getCtx(), M_RMA_ID, null); - - Vector> data = new Vector>(); - StringBuilder sqlStmt = new StringBuilder(); - sqlStmt.append("SELECT rl.M_RMALine_ID, rl.line, rl.Qty - COALESCE(rl.QtyInvoiced, 0), iol.M_Product_ID, p.Name, uom.C_UOM_ID, COALESCE(uom.UOMSymbol,uom.Name) "); - sqlStmt.append("FROM M_RMALine rl INNER JOIN M_InOutLine iol ON rl.M_InOutLine_ID=iol.M_InOutLine_ID "); - - if (Env.isBaseLanguage(Env.getCtx(), "C_UOM")) - { - sqlStmt.append("LEFT OUTER JOIN C_UOM uom ON (uom.C_UOM_ID=iol.C_UOM_ID) "); - } - else - { - sqlStmt.append("LEFT OUTER JOIN C_UOM_Trl uom ON (uom.C_UOM_ID=iol.C_UOM_ID AND uom.AD_Language='"); - sqlStmt.append(Env.getAD_Language(Env.getCtx())).append("') "); - } - sqlStmt.append("LEFT OUTER JOIN M_Product p ON p.M_Product_ID=iol.M_Product_ID "); - sqlStmt.append("WHERE rl.M_RMA_ID=? "); - sqlStmt.append("AND rl.M_INOUTLINE_ID IS NOT NULL"); - - sqlStmt.append(" UNION "); - - sqlStmt.append("SELECT rl.M_RMALine_ID, rl.line, rl.Qty - rl.QtyDelivered, 0, c.Name, uom.C_UOM_ID, COALESCE(uom.UOMSymbol,uom.Name) "); - sqlStmt.append("FROM M_RMALine rl INNER JOIN C_Charge c ON c.C_Charge_ID = rl.C_Charge_ID "); - if (Env.isBaseLanguage(Env.getCtx(), "C_UOM")) - { - sqlStmt.append("LEFT OUTER JOIN C_UOM uom ON (uom.C_UOM_ID=100) "); - } - else - { - sqlStmt.append("LEFT OUTER JOIN C_UOM_Trl uom ON (uom.C_UOM_ID=100 AND uom.AD_Language='"); - sqlStmt.append(Env.getAD_Language(Env.getCtx())).append("') "); - } - sqlStmt.append("WHERE rl.M_RMA_ID=? "); - sqlStmt.append("AND rl.C_Charge_ID IS NOT NULL"); - - PreparedStatement pstmt = null; - ResultSet rs = null; - try - { - pstmt = DB.prepareStatement(sqlStmt.toString(), null); - pstmt.setInt(1, M_RMA_ID); - pstmt.setInt(2, M_RMA_ID); - rs = pstmt.executeQuery(); - - while (rs.next()) - { - Vector line = new Vector(7); - line.add(new Boolean(false)); // 0-Selection - line.add(rs.getBigDecimal(3)); // 1-Qty - KeyNamePair pp = new KeyNamePair(rs.getInt(6), rs.getString(7)); - line.add(pp); // 2-UOM - pp = new KeyNamePair(rs.getInt(4), rs.getString(5)); - line.add(pp); // 3-Product - line.add(null); //4-Vendor Product No - line.add(null); //5-Order - pp = new KeyNamePair(rs.getInt(1), rs.getString(2)); - line.add(null); //6-Ship - line.add(pp); //7-RMA - data.add(line); - } - } - catch (Exception ex) - { - log.log(Level.SEVERE, sqlStmt.toString(), ex); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - - return data; - } - - /** - * List number of rows selected - */ - public void info(IMiniTable miniTable, IStatusBar statusBar) - { - - } // infoInvoice - - protected void configureMiniTable (IMiniTable miniTable) - { - miniTable.setColumnClass(0, Boolean.class, false); // 0-Selection - miniTable.setColumnClass(1, BigDecimal.class, true); // 1-Qty - miniTable.setColumnClass(2, String.class, true); // 2-UOM - miniTable.setColumnClass(3, String.class, true); // 3-Product - miniTable.setColumnClass(4, String.class, true); // 4-VendorProductNo - miniTable.setColumnClass(5, String.class, true); // 5-Order - miniTable.setColumnClass(6, String.class, true); // 6-Ship - miniTable.setColumnClass(7, String.class, true); // 7-Invoice - // Table UI - miniTable.autoSize(); - } - - /** - * Save - Create Invoice Lines - * @return true if saved - */ - public boolean save(IMiniTable miniTable, String trxName) - { - // Invoice - int C_Invoice_ID = ((Integer)getGridTab().getValue("C_Invoice_ID")).intValue(); - MInvoice invoice = new MInvoice (Env.getCtx(), C_Invoice_ID, trxName); - if (log.isLoggable(Level.CONFIG)) log.config(invoice.toString()); - - if (p_order != null) - { - invoice.setOrder(p_order); // overwrite header values - invoice.saveEx(); - } - - if (m_rma != null) - { - invoice.setM_RMA_ID(m_rma.getM_RMA_ID()); - invoice.saveEx(); - } - - if (m_inout != null) - { - invoice.set_ValueNoCheck("M_InOut_ID", (int)m_inout.getM_InOut_ID()); - invoice.saveEx(); - } - -// MInOut inout = null; -// if (m_M_InOut_ID > 0) -// { -// inout = new MInOut(Env.getCtx(), m_M_InOut_ID, trxName); -// } -// if (inout != null && inout.getM_InOut_ID() != 0 -// && inout.getC_Invoice_ID() == 0) // only first time -// { -// inout.setC_Invoice_ID(C_Invoice_ID); -// inout.saveEx(); -// } - - // Lines - for (int i = 0; i < miniTable.getRowCount(); i++) - { - if (((Boolean)miniTable.getValueAt(i, 0)).booleanValue()) - { - MProduct product = null; - // variable values - BigDecimal QtyEntered = (BigDecimal)miniTable.getValueAt(i, 1); // 1-Qty - - KeyNamePair pp = (KeyNamePair)miniTable.getValueAt(i, 2); // 2-UOM - int C_UOM_ID = pp.getKey(); - // - pp = (KeyNamePair)miniTable.getValueAt(i, 3); // 3-Product - int M_Product_ID = 0; - if (pp != null) - M_Product_ID = pp.getKey(); - // - int C_OrderLine_ID = 0; - pp = (KeyNamePair)miniTable.getValueAt(i, 5); // 5-OrderLine - if (pp != null) - C_OrderLine_ID = pp.getKey(); - int M_InOutLine_ID = 0; - pp = (KeyNamePair)miniTable.getValueAt(i, 6); // 6-Shipment - if (pp != null) - M_InOutLine_ID = pp.getKey(); - // - int M_RMALine_ID = 0; - pp = (KeyNamePair)miniTable.getValueAt(i, 7); // 7-RMALine - if (pp != null) - M_RMALine_ID = pp.getKey(); - - // Precision of Qty UOM - int precision = 2; - if (M_Product_ID != 0) - { - product = MProduct.get(Env.getCtx(), M_Product_ID); - precision = product.getUOMPrecision(); - } - QtyEntered = QtyEntered.setScale(precision, BigDecimal.ROUND_HALF_DOWN); - // - if (log.isLoggable(Level.FINE)) log.fine("Line QtyEntered=" + QtyEntered - + ", Product_ID=" + M_Product_ID - + ", OrderLine_ID=" + C_OrderLine_ID + ", InOutLine_ID=" + M_InOutLine_ID); - - // Create new Invoice Line - MInvoiceLine invoiceLine = new MInvoiceLine (invoice); - invoiceLine.setM_Product_ID(M_Product_ID, C_UOM_ID); // Line UOM - invoiceLine.setQty(QtyEntered); // Invoiced/Entered - BigDecimal QtyInvoiced = null; - if (M_Product_ID > 0 && product.getC_UOM_ID() != C_UOM_ID) { - QtyInvoiced = MUOMConversion.convertProductFrom(Env.getCtx(), M_Product_ID, C_UOM_ID, QtyEntered); - } - if (QtyInvoiced == null) - QtyInvoiced = QtyEntered; - invoiceLine.setQtyInvoiced(QtyInvoiced); - - // Info - MOrderLine orderLine = null; - if (C_OrderLine_ID != 0) - orderLine = new MOrderLine (Env.getCtx(), C_OrderLine_ID, trxName); - // - MRMALine rmaLine = null; - if (M_RMALine_ID > 0) - rmaLine = new MRMALine (Env.getCtx(), M_RMALine_ID, null); - // - MInOutLine inoutLine = null; - if (M_InOutLine_ID != 0) - { - inoutLine = new MInOutLine (Env.getCtx(), M_InOutLine_ID, trxName); - if (orderLine == null && inoutLine.getC_OrderLine_ID() != 0) - { - C_OrderLine_ID = inoutLine.getC_OrderLine_ID(); - orderLine = new MOrderLine (Env.getCtx(), C_OrderLine_ID, trxName); - } - } - else if (C_OrderLine_ID > 0) - { - String whereClause = "EXISTS (SELECT 1 FROM M_InOut io WHERE io.M_InOut_ID=M_InOutLine.M_InOut_ID AND io.DocStatus IN ('CO','CL'))"; - MInOutLine[] lines = MInOutLine.getOfOrderLine(Env.getCtx(), - C_OrderLine_ID, whereClause, trxName); - if (log.isLoggable(Level.FINE)) log.fine ("Receipt Lines with OrderLine = #" + lines.length); - if (lines.length > 0) - { - for (int j = 0; j < lines.length; j++) - { - MInOutLine line = lines[j]; - if (line.getQtyEntered().compareTo(QtyEntered) == 0) - { - inoutLine = line; - M_InOutLine_ID = inoutLine.getM_InOutLine_ID(); - break; - } - } -// if (inoutLine == null) -// { -// inoutLine = lines[0]; // first as default -// M_InOutLine_ID = inoutLine.getM_InOutLine_ID(); -// } - } - } - else if (M_RMALine_ID != 0) - { - String whereClause = "EXISTS (SELECT 1 FROM M_InOut io WHERE io.M_InOut_ID=M_InOutLine.M_InOut_ID AND io.DocStatus IN ('CO','CL'))"; - MInOutLine[] lines = MInOutLine.getOfRMALine(Env.getCtx(), M_RMALine_ID, whereClause, null); - if (log.isLoggable(Level.FINE)) log.fine ("Receipt Lines with RMALine = #" + lines.length); - if (lines.length > 0) - { - for (int j = 0; j < lines.length; j++) - { - MInOutLine line = lines[j]; - if (rmaLine.getQty().compareTo(QtyEntered) == 0) - { - inoutLine = line; - M_InOutLine_ID = inoutLine.getM_InOutLine_ID(); - break; - } - } - if (rmaLine == null) - { - inoutLine = lines[0]; // first as default - M_InOutLine_ID = inoutLine.getM_InOutLine_ID(); - } - } - - } - // get Ship info - - // Shipment Info - if (inoutLine != null) - { - invoiceLine.setShipLine(inoutLine); // overwrites - if(org.get_ValueAsBoolean("IsProjectBased")) { - invoiceLine.set_ValueNoCheck("Construction_C_Order_ID", inoutLine.get_Value("Construction_C_Order_ID") != null ? inoutLine.get_ValueAsInt("Construction_C_Order_ID") : null); - invoiceLine.set_ValueNoCheck("SAP_ExpenseCode_ID", inoutLine.get_Value("SAP_ExpenseCode_ID") != null ? inoutLine.get_ValueAsInt("SAP_ExpenseCode_ID") : null); - invoiceLine.set_ValueNoCheck("C_Project_ID", inoutLine.get_Value("C_Project_ID") != null ? inoutLine.get_ValueAsInt("C_Project_ID") : null); - invoiceLine.set_ValueNoCheck("C_ProjectPhase_ID", inoutLine.get_Value("C_ProjectPhase_ID") != null ? inoutLine.get_ValueAsInt("C_ProjectPhase_ID") : null); - } - } - else { - log.fine("No Receipt Line"); - // Order Info - if (orderLine != null) - { - invoiceLine.setOrderLine(orderLine); // overwrites - if(org.get_ValueAsBoolean("IsProjectBased")) { - invoiceLine.set_ValueNoCheck("Construction_C_Order_ID", orderLine.get_Value("Construction_C_Order_ID") != null ? orderLine.get_ValueAsInt("Construction_C_Order_ID") : null); - invoiceLine.set_ValueNoCheck("SAP_ExpenseCode_ID", orderLine.get_Value("SAP_ExpenseCode_ID") != null ? orderLine.get_ValueAsInt("SAP_ExpenseCode_ID") : null); - invoiceLine.set_ValueNoCheck("C_Project_ID", orderLine.get_Value("C_Project_ID") != null ? orderLine.get_ValueAsInt("C_Project_ID") : null); - invoiceLine.set_ValueNoCheck("C_ProjectPhase_ID", orderLine.get_Value("C_ProjectPhase_ID") != null ? orderLine.get_ValueAsInt("C_ProjectPhase_ID") : null); - } - } - else - { - log.fine("No Order Line"); - invoiceLine.setPrice(); - invoiceLine.setTax(); - } - - //RMA Info - if (rmaLine != null) - { - invoiceLine.setRMALine(rmaLine); // overwrites - } - else - log.fine("No RMA Line"); - } - invoiceLine.saveEx(); - } // if selected - } // for all rows - - if (p_order != null) { - invoice.setPaymentRule(p_order.getPaymentRule()); - invoice.setC_PaymentTerm_ID(p_order.getC_PaymentTerm_ID()); - invoice.saveEx(); - invoice.load(invoice.get_TrxName()); // refresh from DB - // copy payment schedule from order if invoice doesn't have a current payment schedule - MOrderPaySchedule[] opss = MOrderPaySchedule.getOrderPaySchedule(invoice.getCtx(), p_order.getC_Order_ID(), 0, invoice.get_TrxName()); - MInvoicePaySchedule[] ipss = MInvoicePaySchedule.getInvoicePaySchedule(invoice.getCtx(), invoice.getC_Invoice_ID(), 0, invoice.get_TrxName()); - if (ipss.length == 0 && opss.length > 0) { - BigDecimal ogt = p_order.getGrandTotal(); - BigDecimal igt = invoice.getGrandTotal(); - BigDecimal percent = Env.ONE; - if (ogt.compareTo(igt) != 0) - percent = igt.divide(ogt, 10, BigDecimal.ROUND_HALF_UP); - MCurrency cur = MCurrency.get(p_order.getCtx(), p_order.getC_Currency_ID()); - int scale = cur.getStdPrecision(); - - for (MOrderPaySchedule ops : opss) { - MInvoicePaySchedule ips = new MInvoicePaySchedule(invoice.getCtx(), 0, invoice.get_TrxName()); - PO.copyValues(ops, ips); - if (percent != Env.ONE) { - BigDecimal propDueAmt = ops.getDueAmt().multiply(percent); - if (propDueAmt.scale() > scale) - propDueAmt = propDueAmt.setScale(scale, BigDecimal.ROUND_HALF_UP); - ips.setDueAmt(propDueAmt); - } - ips.setC_Invoice_ID(invoice.getC_Invoice_ID()); - ips.setAD_Org_ID(ops.getAD_Org_ID()); - ips.setProcessing(ops.isProcessing()); - ips.setIsActive(ops.isActive()); - ips.saveEx(); - } - invoice.validatePaySchedule(); - invoice.saveEx(); - } - invoice.set_ValueNoCheck("RegisterDate", (Timestamp) p_order.get_Value("RegisterDate") == null ? null : (Timestamp)p_order.get_Value("RegisterDate")); - invoice.set_ValueNoCheck("RegisterNo", p_order.get_ValueAsString("RegisterNo") == null ? null : p_order.get_ValueAsString("RegisterNo")); - if(p_order.get_ValueAsInt("MID_AJUDocumentType_ID") > 0) - invoice.set_ValueNoCheck("MID_AJUDocumentType_ID", p_order.get_ValueAsInt("MID_AJUDocumentType_ID")); - invoice.set_ValueNoCheck("NoAju1", p_order.get_ValueAsString("NoAju1") == null ? null : p_order.get_ValueAsString("NoAju1")); - invoice.saveEx(); - } - - return true; - } // saveInvoice - - protected Vector getOISColumnNames() - { - // Header Info - Vector columnNames = new Vector(7); - columnNames.add(Msg.getMsg(Env.getCtx(), "Select")); - columnNames.add(Msg.translate(Env.getCtx(), "Quantity")); - columnNames.add(Msg.translate(Env.getCtx(), "C_UOM_ID")); - columnNames.add(Msg.translate(Env.getCtx(), "M_Product_ID")); - columnNames.add(Msg.getElement(Env.getCtx(), "VendorProductNo", isSOTrx)); - columnNames.add(Msg.getElement(Env.getCtx(), "C_Order_ID", isSOTrx)); - columnNames.add(Msg.getElement(Env.getCtx(), "M_InOut_ID", isSOTrx)); - columnNames.add(Msg.getElement(Env.getCtx(), "M_RMA_ID", isSOTrx)); - - return columnNames; - } - -} +package balinusa.midsuit.form; + +import java.math.BigDecimal; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Vector; +import java.util.logging.Level; + +import org.compiere.apps.IStatusBar; +import org.compiere.grid.CreateFrom; +import org.compiere.minigrid.IMiniTable; +import org.compiere.model.GridTab; +import org.compiere.model.MCurrency; +import org.compiere.model.MInOut; +import org.compiere.model.MInOutLine; +import org.compiere.model.MInvoice; +import org.compiere.model.MInvoiceLine; +import org.compiere.model.MInvoicePaySchedule; +import org.compiere.model.MOrder; +import org.compiere.model.MOrderLine; +import org.compiere.model.MOrderPaySchedule; +import org.compiere.model.MOrg; +import org.compiere.model.MProduct; +import org.compiere.model.MRMA; +import org.compiere.model.MRMALine; +import org.compiere.model.MUOMConversion; +import org.compiere.model.PO; +import org.compiere.util.DB; +import org.compiere.util.DisplayType; +import org.compiere.util.Env; +import org.compiere.util.KeyNamePair; +import org.compiere.util.Msg; + +public abstract class MID_CreateFromInvoice extends CreateFrom { + + protected MInOut m_inout = null; + MOrg org = new MOrg(Env.getCtx(), Env.getAD_Org_ID(Env.getCtx()), null); + + /** + * Protected Constructor + * @param mTab MTab + */ + public MID_CreateFromInvoice(GridTab mTab) + { + super(mTab); + if (log.isLoggable(Level.INFO)) log.info(mTab.toString()); + } // VCreateFromInvoice + + /** + * Dynamic Init + * @return true if initialized + */ + public boolean dynInit() throws Exception + { + log.config(""); + setTitle(Msg.getElement(Env.getCtx(), "C_Invoice_ID", false) + " .. " + Msg.translate(Env.getCtx(), "CreateFrom")); + + return true; + } // dynInit + + /** + * Load PBartner dependent Order/Invoice/Shipment Field. + * @param C_BPartner_ID + */ + protected ArrayList loadShipmentData (int C_BPartner_ID) + { + String isSOTrxParam = isSOTrx ? "Y":"N"; + ArrayList list = new ArrayList(); + + // Display + StringBuffer display = new StringBuffer("s.DocumentNo||' - '||") + .append(DB.TO_CHAR("s.MovementDate", DisplayType.Date, Env.getAD_Language(Env.getCtx()))); + // + StringBuffer sql = new StringBuffer("SELECT s.M_InOut_ID,").append(display) + .append(" FROM M_InOut s " + + "WHERE s.C_BPartner_ID=? AND s.IsSOTrx=? AND s.DocStatus IN ('CL','CO')" + + " AND s.M_InOut_ID IN " + + "(SELECT sl.M_InOut_ID FROM M_InOutLine sl"); + if(!isSOTrx) + sql.append(" LEFT OUTER JOIN M_MatchInv mi ON (sl.M_InOutLine_ID=mi.M_InOutLine_ID) " + + " JOIN M_InOut s2 ON (sl.M_InOut_ID=s2.M_InOut_ID) " + + " WHERE s2.C_BPartner_ID=? AND s2.IsSOTrx=? AND s2.DocStatus IN ('CL','CO') " + + " GROUP BY sl.M_InOut_ID,sl.MovementQty,mi.M_InOutLine_ID" + + " HAVING (sl.MovementQty<>SUM(mi.Qty) AND mi.M_InOutLine_ID IS NOT NULL)" + + " OR mi.M_InOutLine_ID IS NULL "); + else + sql.append(" INNER JOIN M_InOut s2 ON (sl.M_InOut_ID=s2.M_InOut_ID)" + + " LEFT JOIN C_InvoiceLine il ON sl.M_InOutLine_ID = il.M_InOutLine_ID" + + " WHERE s2.C_BPartner_ID=? AND s2.IsSOTrx=? AND s2.DocStatus IN ('CL','CO')" + + " GROUP BY sl.M_InOutLine_ID" + + " HAVING sl.MovementQty - sum(COALESCE(il.QtyInvoiced,0)) > 0"); + sql.append(") ORDER BY s.MovementDate"); + PreparedStatement pstmt = null; + ResultSet rs = null; + try + { + pstmt = DB.prepareStatement(sql.toString(), null); + pstmt.setInt(1, C_BPartner_ID); + pstmt.setString(2, isSOTrxParam); + pstmt.setInt(3, C_BPartner_ID); + pstmt.setString(4, isSOTrxParam); + rs = pstmt.executeQuery(); + while (rs.next()) + { + list.add(new KeyNamePair(rs.getInt(1), rs.getString(2))); + } + } + catch (SQLException e) + { + log.log(Level.SEVERE, sql.toString(), e); + } + finally + { + DB.close(rs, pstmt); + rs = null; + pstmt = null; + } + + return list; + } + + /** + * Load PBartner dependent Order/Invoice/Shipment Field. + * @param C_BPartner_ID BPartner + */ + protected ArrayList loadRMAData(int C_BPartner_ID) { + ArrayList list = new ArrayList(); + + String sqlStmt = "SELECT r.M_RMA_ID, r.DocumentNo || '-' || r.Amt from M_RMA r " + + "WHERE ISSOTRX=? AND r.DocStatus in ('CO', 'CL') " + + "AND r.C_BPartner_ID=? " + + "AND NOT EXISTS (SELECT * FROM C_Invoice inv " + + "WHERE inv.M_RMA_ID=r.M_RMA_ID AND inv.DocStatus IN ('CO', 'CL'))"; + + PreparedStatement pstmt = null; + ResultSet rs = null; + try { + pstmt = DB.prepareStatement(sqlStmt, null); + pstmt.setString(1, isSOTrx? "Y" : "N"); + pstmt.setInt(2, C_BPartner_ID); + rs = pstmt.executeQuery(); + while (rs.next()) { + list.add(new KeyNamePair(rs.getInt(1), rs.getString(2))); + } + } catch (SQLException e) { + log.log(Level.SEVERE, sqlStmt.toString(), e); + } finally{ + DB.close(rs, pstmt); + rs = null; + pstmt = null; + } + + return list; + } + + /** + * Load Data - Shipment not invoiced + * @param M_InOut_ID InOut + */ + protected Vector> getShipmentData(int M_InOut_ID) + { + if (log.isLoggable(Level.CONFIG)) log.config("M_InOut_ID=" + M_InOut_ID); + MInOut inout = new MInOut(Env.getCtx(), M_InOut_ID, null); + p_order = null; + m_inout = inout; + if (inout.getC_Order_ID() != 0) + p_order = new MOrder (Env.getCtx(), inout.getC_Order_ID(), null); + + m_rma = null; + if (inout.getM_RMA_ID() != 0) + m_rma = new MRMA (Env.getCtx(), inout.getM_RMA_ID(), null); + + // + Vector> data = new Vector>(); + StringBuilder sql = new StringBuilder("SELECT "); // QtyEntered + if(!isSOTrx) + sql.append("l.MovementQty-SUM(COALESCE(mi.Qty, 0)),"); + else + sql.append("l.MovementQty-SUM(COALESCE(il.QtyInvoiced,0)),"); + sql.append(" l.QtyEntered/l.MovementQty," + + " l.C_UOM_ID, COALESCE(uom.UOMSymbol, uom.Name)," // 3..4 + + " l.M_Product_ID, p.Name, po.VendorProductNo, l.M_InOutLine_ID, l.Line," // 5..9 + + " l.C_OrderLine_ID " // 10 + + " FROM M_InOutLine l " + ); + if (Env.isBaseLanguage(Env.getCtx(), "C_UOM")) + sql.append(" LEFT OUTER JOIN C_UOM uom ON (l.C_UOM_ID=uom.C_UOM_ID)"); + else + sql.append(" LEFT OUTER JOIN C_UOM_Trl uom ON (l.C_UOM_ID=uom.C_UOM_ID AND uom.AD_Language='") + .append(Env.getAD_Language(Env.getCtx())).append("')"); + + sql.append(" LEFT OUTER JOIN M_Product p ON (l.M_Product_ID=p.M_Product_ID)") + .append(" INNER JOIN M_InOut io ON (l.M_InOut_ID=io.M_InOut_ID)"); + if(!isSOTrx) + sql.append(" LEFT OUTER JOIN M_MatchInv mi ON (l.M_InOutLine_ID=mi.M_InOutLine_ID)"); + else + sql.append(" LEFT JOIN C_InvoiceLine il ON l.M_InOutLine_ID = il.M_InOutLine_ID"); + sql.append(" LEFT OUTER JOIN M_Product_PO po ON (l.M_Product_ID = po.M_Product_ID AND io.C_BPartner_ID = po.C_BPartner_ID)") + + .append(" WHERE l.M_InOut_ID=? AND l.MovementQty<>0 ") + .append("GROUP BY l.MovementQty, l.QtyEntered/l.MovementQty, " + + "l.C_UOM_ID, COALESCE(uom.UOMSymbol, uom.Name), " + + "l.M_Product_ID, p.Name, po.VendorProductNo, l.M_InOutLine_ID, l.Line, l.C_OrderLine_ID "); + if(!isSOTrx) + sql.append(" HAVING l.MovementQty-SUM(COALESCE(mi.Qty, 0)) <>0"); + else + sql.append(" HAVING l.MovementQty-SUM(COALESCE(il.QtyInvoiced,0)) <>0"); + sql.append("ORDER BY l.Line"); + PreparedStatement pstmt = null; + ResultSet rs = null; + try + { + pstmt = DB.prepareStatement(sql.toString(), null); + pstmt.setInt(1, M_InOut_ID); + rs = pstmt.executeQuery(); + while (rs.next()) + { + Vector line = new Vector(7); + line.add(new Boolean(false)); // 0-Selection + BigDecimal qtyMovement = rs.getBigDecimal(1); + BigDecimal multiplier = rs.getBigDecimal(2); + BigDecimal qtyEntered = qtyMovement.multiply(multiplier); + line.add(qtyEntered); // 1-Qty + KeyNamePair pp = new KeyNamePair(rs.getInt(3), rs.getString(4).trim()); + line.add(pp); // 2-UOM + pp = new KeyNamePair(rs.getInt(5), rs.getString(6)); + line.add(pp); // 3-Product + line.add(rs.getString(7)); // 4-VendorProductNo + int C_OrderLine_ID = rs.getInt(10); + if (rs.wasNull()) + line.add(null); // 5-Order + else + line.add(new KeyNamePair(C_OrderLine_ID,".")); + pp = new KeyNamePair(rs.getInt(8), rs.getString(9)); + line.add(pp); // 6-Ship + line.add(null); // 7-RMA + data.add(line); + } + } + catch (SQLException e) + { + log.log(Level.SEVERE, sql.toString(), e); + } + finally + { + DB.close(rs, pstmt); + rs = null; + pstmt = null; + } + + return data; + } // loadShipment + + /** + * Load RMA details + * @param M_RMA_ID RMA + */ + protected Vector> getRMAData(int M_RMA_ID) + { + p_order = null; + +// MRMA m_rma = new MRMA(Env.getCtx(), M_RMA_ID, null); + + Vector> data = new Vector>(); + StringBuilder sqlStmt = new StringBuilder(); + sqlStmt.append("SELECT rl.M_RMALine_ID, rl.line, rl.Qty - COALESCE(rl.QtyInvoiced, 0), iol.M_Product_ID, p.Name, uom.C_UOM_ID, COALESCE(uom.UOMSymbol,uom.Name) "); + sqlStmt.append("FROM M_RMALine rl INNER JOIN M_InOutLine iol ON rl.M_InOutLine_ID=iol.M_InOutLine_ID "); + + if (Env.isBaseLanguage(Env.getCtx(), "C_UOM")) + { + sqlStmt.append("LEFT OUTER JOIN C_UOM uom ON (uom.C_UOM_ID=iol.C_UOM_ID) "); + } + else + { + sqlStmt.append("LEFT OUTER JOIN C_UOM_Trl uom ON (uom.C_UOM_ID=iol.C_UOM_ID AND uom.AD_Language='"); + sqlStmt.append(Env.getAD_Language(Env.getCtx())).append("') "); + } + sqlStmt.append("LEFT OUTER JOIN M_Product p ON p.M_Product_ID=iol.M_Product_ID "); + sqlStmt.append("WHERE rl.M_RMA_ID=? "); + sqlStmt.append("AND rl.M_INOUTLINE_ID IS NOT NULL"); + + sqlStmt.append(" UNION "); + + sqlStmt.append("SELECT rl.M_RMALine_ID, rl.line, rl.Qty - rl.QtyDelivered, 0, c.Name, uom.C_UOM_ID, COALESCE(uom.UOMSymbol,uom.Name) "); + sqlStmt.append("FROM M_RMALine rl INNER JOIN C_Charge c ON c.C_Charge_ID = rl.C_Charge_ID "); + if (Env.isBaseLanguage(Env.getCtx(), "C_UOM")) + { + sqlStmt.append("LEFT OUTER JOIN C_UOM uom ON (uom.C_UOM_ID=100) "); + } + else + { + sqlStmt.append("LEFT OUTER JOIN C_UOM_Trl uom ON (uom.C_UOM_ID=100 AND uom.AD_Language='"); + sqlStmt.append(Env.getAD_Language(Env.getCtx())).append("') "); + } + sqlStmt.append("WHERE rl.M_RMA_ID=? "); + sqlStmt.append("AND rl.C_Charge_ID IS NOT NULL"); + + PreparedStatement pstmt = null; + ResultSet rs = null; + try + { + pstmt = DB.prepareStatement(sqlStmt.toString(), null); + pstmt.setInt(1, M_RMA_ID); + pstmt.setInt(2, M_RMA_ID); + rs = pstmt.executeQuery(); + + while (rs.next()) + { + Vector line = new Vector(7); + line.add(new Boolean(false)); // 0-Selection + line.add(rs.getBigDecimal(3)); // 1-Qty + KeyNamePair pp = new KeyNamePair(rs.getInt(6), rs.getString(7)); + line.add(pp); // 2-UOM + pp = new KeyNamePair(rs.getInt(4), rs.getString(5)); + line.add(pp); // 3-Product + line.add(null); //4-Vendor Product No + line.add(null); //5-Order + pp = new KeyNamePair(rs.getInt(1), rs.getString(2)); + line.add(null); //6-Ship + line.add(pp); //7-RMA + data.add(line); + } + } + catch (Exception ex) + { + log.log(Level.SEVERE, sqlStmt.toString(), ex); + } + finally + { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } + + return data; + } + + /** + * List number of rows selected + */ + public void info(IMiniTable miniTable, IStatusBar statusBar) + { + + } // infoInvoice + + protected void configureMiniTable (IMiniTable miniTable) + { + miniTable.setColumnClass(0, Boolean.class, false); // 0-Selection + miniTable.setColumnClass(1, BigDecimal.class, true); // 1-Qty + miniTable.setColumnClass(2, String.class, true); // 2-UOM + miniTable.setColumnClass(3, String.class, true); // 3-Product + miniTable.setColumnClass(4, String.class, true); // 4-VendorProductNo + miniTable.setColumnClass(5, String.class, true); // 5-Order + miniTable.setColumnClass(6, String.class, true); // 6-Ship + miniTable.setColumnClass(7, String.class, true); // 7-Invoice + // Table UI + miniTable.autoSize(); + } + + /** + * Save - Create Invoice Lines + * @return true if saved + */ + public boolean save(IMiniTable miniTable, String trxName) + { + // Invoice + int C_Invoice_ID = ((Integer)getGridTab().getValue("C_Invoice_ID")).intValue(); + MInvoice invoice = new MInvoice (Env.getCtx(), C_Invoice_ID, trxName); + if (log.isLoggable(Level.CONFIG)) log.config(invoice.toString()); + + if (p_order != null) + { + invoice.setOrder(p_order); // overwrite header values + invoice.saveEx(); + } + + if (m_rma != null) + { + invoice.setM_RMA_ID(m_rma.getM_RMA_ID()); + invoice.saveEx(); + } + + if (m_inout != null) + { + invoice.set_ValueNoCheck("M_InOut_ID", (int)m_inout.getM_InOut_ID()); + invoice.saveEx(); + } + +// MInOut inout = null; +// if (m_M_InOut_ID > 0) +// { +// inout = new MInOut(Env.getCtx(), m_M_InOut_ID, trxName); +// } +// if (inout != null && inout.getM_InOut_ID() != 0 +// && inout.getC_Invoice_ID() == 0) // only first time +// { +// inout.setC_Invoice_ID(C_Invoice_ID); +// inout.saveEx(); +// } + + // Lines + for (int i = 0; i < miniTable.getRowCount(); i++) + { + if (((Boolean)miniTable.getValueAt(i, 0)).booleanValue()) + { + MProduct product = null; + // variable values + BigDecimal QtyEntered = (BigDecimal)miniTable.getValueAt(i, 1); // 1-Qty + + KeyNamePair pp = (KeyNamePair)miniTable.getValueAt(i, 2); // 2-UOM + int C_UOM_ID = pp.getKey(); + // + pp = (KeyNamePair)miniTable.getValueAt(i, 3); // 3-Product + int M_Product_ID = 0; + if (pp != null) + M_Product_ID = pp.getKey(); + // + int C_OrderLine_ID = 0; + pp = (KeyNamePair)miniTable.getValueAt(i, 5); // 5-OrderLine + if (pp != null) + C_OrderLine_ID = pp.getKey(); + int M_InOutLine_ID = 0; + pp = (KeyNamePair)miniTable.getValueAt(i, 6); // 6-Shipment + if (pp != null) + M_InOutLine_ID = pp.getKey(); + // + int M_RMALine_ID = 0; + pp = (KeyNamePair)miniTable.getValueAt(i, 7); // 7-RMALine + if (pp != null) + M_RMALine_ID = pp.getKey(); + + // Precision of Qty UOM + int precision = 2; + if (M_Product_ID != 0) + { + product = MProduct.get(Env.getCtx(), M_Product_ID); + precision = product.getUOMPrecision(); + } + QtyEntered = QtyEntered.setScale(precision, BigDecimal.ROUND_HALF_DOWN); + // + if (log.isLoggable(Level.FINE)) log.fine("Line QtyEntered=" + QtyEntered + + ", Product_ID=" + M_Product_ID + + ", OrderLine_ID=" + C_OrderLine_ID + ", InOutLine_ID=" + M_InOutLine_ID); + + // Create new Invoice Line + MInvoiceLine invoiceLine = new MInvoiceLine (invoice); + invoiceLine.setM_Product_ID(M_Product_ID, C_UOM_ID); // Line UOM + invoiceLine.setQty(QtyEntered); // Invoiced/Entered + BigDecimal QtyInvoiced = null; + if (M_Product_ID > 0 && product.getC_UOM_ID() != C_UOM_ID) { + QtyInvoiced = MUOMConversion.convertProductFrom(Env.getCtx(), M_Product_ID, C_UOM_ID, QtyEntered); + } + if (QtyInvoiced == null) + QtyInvoiced = QtyEntered; + invoiceLine.setQtyInvoiced(QtyInvoiced); + + // Info + MOrderLine orderLine = null; + if (C_OrderLine_ID != 0) + orderLine = new MOrderLine (Env.getCtx(), C_OrderLine_ID, trxName); + // + MRMALine rmaLine = null; + if (M_RMALine_ID > 0) + rmaLine = new MRMALine (Env.getCtx(), M_RMALine_ID, null); + // + MInOutLine inoutLine = null; + if (M_InOutLine_ID != 0) + { + inoutLine = new MInOutLine (Env.getCtx(), M_InOutLine_ID, trxName); + if (orderLine == null && inoutLine.getC_OrderLine_ID() != 0) + { + C_OrderLine_ID = inoutLine.getC_OrderLine_ID(); + orderLine = new MOrderLine (Env.getCtx(), C_OrderLine_ID, trxName); + } + } + else if (C_OrderLine_ID > 0) + { + String whereClause = "EXISTS (SELECT 1 FROM M_InOut io WHERE io.M_InOut_ID=M_InOutLine.M_InOut_ID AND io.DocStatus IN ('CO','CL'))"; + MInOutLine[] lines = MInOutLine.getOfOrderLine(Env.getCtx(), + C_OrderLine_ID, whereClause, trxName); + if (log.isLoggable(Level.FINE)) log.fine ("Receipt Lines with OrderLine = #" + lines.length); + if (lines.length > 0) + { + for (int j = 0; j < lines.length; j++) + { + MInOutLine line = lines[j]; + if (line.getQtyEntered().compareTo(QtyEntered) == 0) + { + inoutLine = line; + M_InOutLine_ID = inoutLine.getM_InOutLine_ID(); + break; + } + } +// if (inoutLine == null) +// { +// inoutLine = lines[0]; // first as default +// M_InOutLine_ID = inoutLine.getM_InOutLine_ID(); +// } + } + } + else if (M_RMALine_ID != 0) + { + String whereClause = "EXISTS (SELECT 1 FROM M_InOut io WHERE io.M_InOut_ID=M_InOutLine.M_InOut_ID AND io.DocStatus IN ('CO','CL'))"; + MInOutLine[] lines = MInOutLine.getOfRMALine(Env.getCtx(), M_RMALine_ID, whereClause, null); + if (log.isLoggable(Level.FINE)) log.fine ("Receipt Lines with RMALine = #" + lines.length); + if (lines.length > 0) + { + for (int j = 0; j < lines.length; j++) + { + MInOutLine line = lines[j]; + if (rmaLine.getQty().compareTo(QtyEntered) == 0) + { + inoutLine = line; + M_InOutLine_ID = inoutLine.getM_InOutLine_ID(); + break; + } + } + if (rmaLine == null) + { + inoutLine = lines[0]; // first as default + M_InOutLine_ID = inoutLine.getM_InOutLine_ID(); + } + } + + } + // get Ship info + + // Shipment Info + if (inoutLine != null) + { + invoiceLine.setShipLine(inoutLine); // overwrites + if(org.get_ValueAsBoolean("IsProjectBased")) { + invoiceLine.set_ValueNoCheck("Construction_C_Order_ID", inoutLine.get_Value("Construction_C_Order_ID") != null ? inoutLine.get_ValueAsInt("Construction_C_Order_ID") : null); + invoiceLine.set_ValueNoCheck("SAP_ExpenseCode_ID", inoutLine.get_Value("SAP_ExpenseCode_ID") != null ? inoutLine.get_ValueAsInt("SAP_ExpenseCode_ID") : null); + invoiceLine.set_ValueNoCheck("C_Project_ID", inoutLine.get_Value("C_Project_ID") != null ? inoutLine.get_ValueAsInt("C_Project_ID") : null); + invoiceLine.set_ValueNoCheck("C_ProjectPhase_ID", inoutLine.get_Value("C_ProjectPhase_ID") != null ? inoutLine.get_ValueAsInt("C_ProjectPhase_ID") : null); + } + } + else { + log.fine("No Receipt Line"); + // Order Info + if (orderLine != null) + { + invoiceLine.setOrderLine(orderLine); // overwrites + if(org.get_ValueAsBoolean("IsProjectBased")) { + invoiceLine.set_ValueNoCheck("Construction_C_Order_ID", orderLine.get_Value("Construction_C_Order_ID") != null ? orderLine.get_ValueAsInt("Construction_C_Order_ID") : null); + invoiceLine.set_ValueNoCheck("SAP_ExpenseCode_ID", orderLine.get_Value("SAP_ExpenseCode_ID") != null ? orderLine.get_ValueAsInt("SAP_ExpenseCode_ID") : null); + invoiceLine.set_ValueNoCheck("C_Project_ID", orderLine.get_Value("C_Project_ID") != null ? orderLine.get_ValueAsInt("C_Project_ID") : null); + invoiceLine.set_ValueNoCheck("C_ProjectPhase_ID", orderLine.get_Value("C_ProjectPhase_ID") != null ? orderLine.get_ValueAsInt("C_ProjectPhase_ID") : null); + } + } + else + { + log.fine("No Order Line"); + invoiceLine.setPrice(); + invoiceLine.setTax(); + } + + //RMA Info + if (rmaLine != null) + { + invoiceLine.setRMALine(rmaLine); // overwrites + } + else + log.fine("No RMA Line"); + } + invoiceLine.saveEx(); + } // if selected + } // for all rows + + if (p_order != null) { + invoice.setPaymentRule(p_order.getPaymentRule()); + invoice.setC_PaymentTerm_ID(p_order.getC_PaymentTerm_ID()); + invoice.saveEx(); + invoice.load(invoice.get_TrxName()); // refresh from DB + // copy payment schedule from order if invoice doesn't have a current payment schedule + MOrderPaySchedule[] opss = MOrderPaySchedule.getOrderPaySchedule(invoice.getCtx(), p_order.getC_Order_ID(), 0, invoice.get_TrxName()); + MInvoicePaySchedule[] ipss = MInvoicePaySchedule.getInvoicePaySchedule(invoice.getCtx(), invoice.getC_Invoice_ID(), 0, invoice.get_TrxName()); + if (ipss.length == 0 && opss.length > 0) { + BigDecimal ogt = p_order.getGrandTotal(); + BigDecimal igt = invoice.getGrandTotal(); + BigDecimal percent = Env.ONE; + if (ogt.compareTo(igt) != 0) + percent = igt.divide(ogt, 10, BigDecimal.ROUND_HALF_UP); + MCurrency cur = MCurrency.get(p_order.getCtx(), p_order.getC_Currency_ID()); + int scale = cur.getStdPrecision(); + + for (MOrderPaySchedule ops : opss) { + MInvoicePaySchedule ips = new MInvoicePaySchedule(invoice.getCtx(), 0, invoice.get_TrxName()); + PO.copyValues(ops, ips); + if (percent != Env.ONE) { + BigDecimal propDueAmt = ops.getDueAmt().multiply(percent); + if (propDueAmt.scale() > scale) + propDueAmt = propDueAmt.setScale(scale, BigDecimal.ROUND_HALF_UP); + ips.setDueAmt(propDueAmt); + } + ips.setC_Invoice_ID(invoice.getC_Invoice_ID()); + ips.setAD_Org_ID(ops.getAD_Org_ID()); + ips.setProcessing(ops.isProcessing()); + ips.setIsActive(ops.isActive()); + ips.saveEx(); + } + invoice.validatePaySchedule(); + invoice.saveEx(); + } + invoice.set_ValueNoCheck("RegisterDate", (Timestamp) p_order.get_Value("RegisterDate") == null ? null : (Timestamp)p_order.get_Value("RegisterDate")); + invoice.set_ValueNoCheck("RegisterNo", p_order.get_ValueAsString("RegisterNo") == null ? null : p_order.get_ValueAsString("RegisterNo")); + if(p_order.get_ValueAsInt("MID_AJUDocumentType_ID") > 0) + invoice.set_ValueNoCheck("MID_AJUDocumentType_ID", p_order.get_ValueAsInt("MID_AJUDocumentType_ID")); + invoice.set_ValueNoCheck("NoAju1", p_order.get_ValueAsString("NoAju1") == null ? null : p_order.get_ValueAsString("NoAju1")); + invoice.saveEx(); + } + + return true; + } // saveInvoice + + protected Vector getOISColumnNames() + { + // Header Info + Vector columnNames = new Vector(7); + columnNames.add(Msg.getMsg(Env.getCtx(), "Select")); + columnNames.add(Msg.translate(Env.getCtx(), "Quantity")); + columnNames.add(Msg.translate(Env.getCtx(), "C_UOM_ID")); + columnNames.add(Msg.translate(Env.getCtx(), "M_Product_ID")); + columnNames.add(Msg.getElement(Env.getCtx(), "VendorProductNo", isSOTrx)); + columnNames.add(Msg.getElement(Env.getCtx(), "C_Order_ID", isSOTrx)); + columnNames.add(Msg.getElement(Env.getCtx(), "M_InOut_ID", isSOTrx)); + columnNames.add(Msg.getElement(Env.getCtx(), "M_RMA_ID", isSOTrx)); + + return columnNames; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromOrder.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromOrder.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromOrder.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromOrder.java index a828148..1c2367c 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromOrder.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromOrder.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.form; +package balinusa.midsuit.form; import java.math.BigDecimal; import java.sql.PreparedStatement; @@ -31,7 +31,7 @@ import org.compiere.util.Env; import org.compiere.util.KeyNamePair; import org.compiere.util.Msg; -import andromedia.midsuit.model.MID_MRequisitionTrxLine; +import balinusa.midsuit.model.MID_MRequisitionTrxLine; public class MID_CreateFromOrder extends CreateFrom { /* diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromRMA.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromRMA.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromRMA.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromRMA.java index b04a80b..11e2c69 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromRMA.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromRMA.java @@ -1,230 +1,230 @@ -/****************************************************************************** - * Copyright (C) 2009 Low Heng Sin * - * Copyright (C) 2009 Idalica Corporation * - * This program is free software; you can redistribute it and/or modify it * - * under the terms version 2 of the GNU General Public License as published * - * by the Free Software Foundation. This program is distributed in the hope * - * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * - * See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along * - * with this program; if not, write to the Free Software Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * - *****************************************************************************/ -package andromedia.midsuit.form; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.List; -import java.util.Vector; -import java.util.logging.Level; - -import org.compiere.apps.IStatusBar; -import org.compiere.grid.CreateFrom; -import org.compiere.minigrid.IMiniTable; -import org.compiere.model.GridTab; -import org.compiere.model.MInOutLine; -import org.compiere.model.MInOutLineMA; -import org.compiere.model.MRMA; -import org.compiere.model.MRMALine; -import org.compiere.model.MStorageOnHand; -import org.compiere.model.Query; -import org.compiere.model.X_M_InOutLineMA; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.compiere.util.KeyNamePair; -import org.compiere.util.Msg; - -import andromedia.midsuit.model.X_C_OrderLineMA; -import andromedia.midsuit.model.X_M_RMAMA; - -/** - * Create Transactions for RMA - * @author ashley - * @author Teo Sarca, www.arhipac.ro - *
  • BF [ 2007837 ] VCreateFrom.save() should run in trx - */ -public abstract class MID_CreateFromRMA extends CreateFrom { - - public MID_CreateFromRMA(GridTab mTab) - { - super(mTab); - if (log.isLoggable(Level.INFO)) log.info(mTab.toString()); - } - - @Override - public boolean dynInit() throws Exception - { - log.config(""); - setTitle(Msg.getElement(Env.getCtx(), "M_RMA_ID") + " .. " + Msg.translate(Env.getCtx(), "CreateFrom")); - - return true; - } - - protected Vector> getRMAData() - { - int M_InOut_ID = Env.getContextAsInt(Env.getCtx(), getGridTab().getWindowNo(), "InOut_ID"); - int M_RMA_ID = Env.getContextAsInt(Env.getCtx(), getGridTab().getWindowNo(), "M_RMA_ID"); - - Vector> data = new Vector>(); - - /** - * 1 M_InOutLine_ID - * 2 Line - * 3 Product Name - * 4 Qty Entered - * 5 Movement Qty - * 6 ASI - */ - StringBuilder sqlStmt = new StringBuilder(); - - sqlStmt.append("SELECT iol.M_InOutLine_ID, iol.Line, "); - sqlStmt.append("COALESCE(p.Name, c.Name) AS ProductName, "); - sqlStmt.append("iol.QtyEntered, "); - sqlStmt.append("iol.movementQty-(SELECT COALESCE((SELECT SUM(rmal.qty) FROM M_RMALine rmal JOIN M_RMA rma ON rma.M_RMA_ID=rmal.M_RMA_ID WHERE rmal.M_InOutLine_ID=iol.M_InOutLine_ID AND rma.DocStatus IN ('CO','CL')),0)) AS MovementQty, "); - sqlStmt.append("CASE WHEN iol.M_AttributeSetInstance_ID IS NOT NULL THEN (SELECT SerNo FROM M_AttributeSetInstance asi WHERE asi.M_AttributeSetInstance_ID=iol.M_AttributeSetInstance_ID) END as ASI, "); - sqlStmt.append("iol.Description " ); - sqlStmt.append("FROM M_InOutLine iol "); - sqlStmt.append("LEFT JOIN M_Product p ON p.M_Product_ID = iol.M_Product_ID "); - sqlStmt.append("LEFT JOIN C_Charge c ON c.C_Charge_ID = iol.C_Charge_ID "); - sqlStmt.append("WHERE M_InOut_ID=? "); - sqlStmt.append("AND iol.M_InOutLine_ID NOT IN (SELECT rmal.M_InOutLine_ID FROM M_RMALine rmal WHERE rmal.M_RMA_ID=?)"); - sqlStmt.append(" ORDER BY iol.Line " ); - - PreparedStatement pstmt = null; - ResultSet rs = null; - try - { - pstmt = DB.prepareStatement(sqlStmt.toString(), null); - pstmt.setInt(1, M_InOut_ID); - pstmt.setInt(2, M_RMA_ID); - rs = pstmt.executeQuery(); - while (rs.next()) - { - Vector line = new Vector(8); - line.add(new Boolean(false)); // 0-Selection - - KeyNamePair lineKNPair = new KeyNamePair(rs.getInt(1), rs.getString(2)); // 1-Line - line.add(lineKNPair); - line.add(rs.getString(3)); //2-Product - line.add(rs.getString(6)); //3-ASI - - BigDecimal qtyEntered = rs.getBigDecimal(4); - BigDecimal movementQty = rs.getBigDecimal(5); - - line.add(qtyEntered); //4-Qty - line.add(movementQty); //5-Movement Qty - - line.add(rs.getString(7)); // 6 - Description - data.add(line); - } - } - catch (SQLException e) - { - log.log(Level.SEVERE, sqlStmt.toString(), e); - } - finally - { - DB.close(rs, pstmt); - rs = null; - pstmt = null; - } - - return data; - } - - @Override - public void info(IMiniTable miniTable, IStatusBar statusBar) - { - - } - - protected void configureMiniTable (IMiniTable miniTable) - { - miniTable.setColumnClass(0, Boolean.class, false); // 0-Selection - miniTable.setColumnClass(1, String.class, true); // 1-Line - miniTable.setColumnClass(2, String.class, true); // 2-Product - miniTable.setColumnClass(3, String.class, true); // 3-ASI - miniTable.setColumnClass(4, BigDecimal.class, true); // 4-Qty - miniTable.setColumnClass(5, BigDecimal.class, false); // 5-Delivered Qty - miniTable.setColumnClass(6, String.class, true); // 6-Description - - // Table UI - miniTable.autoSize(); - } - - @Override - public boolean save(IMiniTable miniTable, String trxName) - { - log.config(""); - int M_RMA_ID = Env.getContextAsInt(Env.getCtx(), getGridTab().getWindowNo(), "M_RMA_ID"); - -// Integer bpId = (Integer)bPartnerField.getValue(); - MRMA rma = new MRMA(Env.getCtx(), M_RMA_ID, trxName); - //update BP -// rma.setC_BPartner_ID(bpId); - - for (int i = 0; i < miniTable.getRowCount(); i++) - { - if (((Boolean)miniTable.getValueAt(i, 0)).booleanValue()) - { - BigDecimal d = (BigDecimal)miniTable.getValueAt(i, 5); // 5-Movement Qty - KeyNamePair pp = (KeyNamePair)miniTable.getValueAt(i, 1); // 1-Line - - int inOutLineId = pp.getKey(); - MInOutLine iol = new MInOutLine(rma.getCtx(), inOutLineId, rma.get_TrxName()); - MRMALine rmaLine = new MRMALine(rma.getCtx(), 0, rma.get_TrxName()); - rmaLine.setM_RMA_ID(M_RMA_ID); - rmaLine.setM_InOutLine_ID(inOutLineId); - rmaLine.setQty(d); - rmaLine.setAD_Org_ID(rma.getAD_Org_ID()); - rmaLine.setDescription((String)miniTable.getValueAt(i, 6)); - if (!rmaLine.save()) - { - throw new IllegalStateException("Could not create RMA Line"); - } - List attLines = new Query(Env.getCtx(), X_M_InOutLineMA.Table_Name, "M_InOutLine_ID =?", trxName) - .setParameters(new Object[] { inOutLineId }) - .setOnlyActiveRecords(true) - .list(); - log.severe(iol.getM_AttributeSetInstance_ID()+" "); - if(attLines.size()<=0) - rmaLine.set_ValueNoCheck("M_AttributeSetInstance_ID", iol.getM_AttributeSetInstance_ID()); - else { - for(MInOutLineMA attLine : attLines) { - X_M_RMAMA inoutAtt = new X_M_RMAMA(rma.getCtx(), 0, rma.get_TrxName()); - inoutAtt.setAD_Org_ID(attLine.getAD_Org_ID()); - inoutAtt.setM_InOutLine_ID(iol.getM_InOutLine_ID()); - inoutAtt.setM_RMALine_ID(rmaLine.get_ID()); - inoutAtt.setIsAutoGenerated(false); - inoutAtt.setM_AttributeSetInstance_ID(attLine.getM_AttributeSetInstance_ID()); - inoutAtt.setMovementQty(attLine.getMovementQty()); - inoutAtt.setDateMaterialPolicy(attLine.getDateMaterialPolicy()); - inoutAtt.saveEx(); - } - } - - - } - } - rma.saveEx(); - return true; - } - - protected Vector getOISColumnNames() - { - // Header Info - Vector columnNames = new Vector(7); - columnNames.add(Msg.getMsg(Env.getCtx(), "Select")); - columnNames.add(Msg.translate(Env.getCtx(), "Line")); - columnNames.add(Msg.translate(Env.getCtx(), "M_Product_ID")); - columnNames.add(Msg.translate(Env.getCtx(), "SerNo")); - columnNames.add(Msg.translate(Env.getCtx(), "Quantity")); - columnNames.add(Msg.getElement(Env.getCtx(), "QtyDelivered", false)); - columnNames.add(Msg.translate(Env.getCtx(), "Description")); - - return columnNames; - } -} +/****************************************************************************** + * Copyright (C) 2009 Low Heng Sin * + * Copyright (C) 2009 Idalica Corporation * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program; if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + *****************************************************************************/ +package balinusa.midsuit.form; + +import java.math.BigDecimal; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; +import java.util.Vector; +import java.util.logging.Level; + +import org.compiere.apps.IStatusBar; +import org.compiere.grid.CreateFrom; +import org.compiere.minigrid.IMiniTable; +import org.compiere.model.GridTab; +import org.compiere.model.MInOutLine; +import org.compiere.model.MInOutLineMA; +import org.compiere.model.MRMA; +import org.compiere.model.MRMALine; +import org.compiere.model.MStorageOnHand; +import org.compiere.model.Query; +import org.compiere.model.X_M_InOutLineMA; +import org.compiere.util.DB; +import org.compiere.util.Env; +import org.compiere.util.KeyNamePair; +import org.compiere.util.Msg; + +import balinusa.midsuit.model.X_C_OrderLineMA; +import balinusa.midsuit.model.X_M_RMAMA; + +/** + * Create Transactions for RMA + * @author ashley + * @author Teo Sarca, www.arhipac.ro + *
  • BF [ 2007837 ] VCreateFrom.save() should run in trx + */ +public abstract class MID_CreateFromRMA extends CreateFrom { + + public MID_CreateFromRMA(GridTab mTab) + { + super(mTab); + if (log.isLoggable(Level.INFO)) log.info(mTab.toString()); + } + + @Override + public boolean dynInit() throws Exception + { + log.config(""); + setTitle(Msg.getElement(Env.getCtx(), "M_RMA_ID") + " .. " + Msg.translate(Env.getCtx(), "CreateFrom")); + + return true; + } + + protected Vector> getRMAData() + { + int M_InOut_ID = Env.getContextAsInt(Env.getCtx(), getGridTab().getWindowNo(), "InOut_ID"); + int M_RMA_ID = Env.getContextAsInt(Env.getCtx(), getGridTab().getWindowNo(), "M_RMA_ID"); + + Vector> data = new Vector>(); + + /** + * 1 M_InOutLine_ID + * 2 Line + * 3 Product Name + * 4 Qty Entered + * 5 Movement Qty + * 6 ASI + */ + StringBuilder sqlStmt = new StringBuilder(); + + sqlStmt.append("SELECT iol.M_InOutLine_ID, iol.Line, "); + sqlStmt.append("COALESCE(p.Name, c.Name) AS ProductName, "); + sqlStmt.append("iol.QtyEntered, "); + sqlStmt.append("iol.movementQty-(SELECT COALESCE((SELECT SUM(rmal.qty) FROM M_RMALine rmal JOIN M_RMA rma ON rma.M_RMA_ID=rmal.M_RMA_ID WHERE rmal.M_InOutLine_ID=iol.M_InOutLine_ID AND rma.DocStatus IN ('CO','CL')),0)) AS MovementQty, "); + sqlStmt.append("CASE WHEN iol.M_AttributeSetInstance_ID IS NOT NULL THEN (SELECT SerNo FROM M_AttributeSetInstance asi WHERE asi.M_AttributeSetInstance_ID=iol.M_AttributeSetInstance_ID) END as ASI, "); + sqlStmt.append("iol.Description " ); + sqlStmt.append("FROM M_InOutLine iol "); + sqlStmt.append("LEFT JOIN M_Product p ON p.M_Product_ID = iol.M_Product_ID "); + sqlStmt.append("LEFT JOIN C_Charge c ON c.C_Charge_ID = iol.C_Charge_ID "); + sqlStmt.append("WHERE M_InOut_ID=? "); + sqlStmt.append("AND iol.M_InOutLine_ID NOT IN (SELECT rmal.M_InOutLine_ID FROM M_RMALine rmal WHERE rmal.M_RMA_ID=?)"); + sqlStmt.append(" ORDER BY iol.Line " ); + + PreparedStatement pstmt = null; + ResultSet rs = null; + try + { + pstmt = DB.prepareStatement(sqlStmt.toString(), null); + pstmt.setInt(1, M_InOut_ID); + pstmt.setInt(2, M_RMA_ID); + rs = pstmt.executeQuery(); + while (rs.next()) + { + Vector line = new Vector(8); + line.add(new Boolean(false)); // 0-Selection + + KeyNamePair lineKNPair = new KeyNamePair(rs.getInt(1), rs.getString(2)); // 1-Line + line.add(lineKNPair); + line.add(rs.getString(3)); //2-Product + line.add(rs.getString(6)); //3-ASI + + BigDecimal qtyEntered = rs.getBigDecimal(4); + BigDecimal movementQty = rs.getBigDecimal(5); + + line.add(qtyEntered); //4-Qty + line.add(movementQty); //5-Movement Qty + + line.add(rs.getString(7)); // 6 - Description + data.add(line); + } + } + catch (SQLException e) + { + log.log(Level.SEVERE, sqlStmt.toString(), e); + } + finally + { + DB.close(rs, pstmt); + rs = null; + pstmt = null; + } + + return data; + } + + @Override + public void info(IMiniTable miniTable, IStatusBar statusBar) + { + + } + + protected void configureMiniTable (IMiniTable miniTable) + { + miniTable.setColumnClass(0, Boolean.class, false); // 0-Selection + miniTable.setColumnClass(1, String.class, true); // 1-Line + miniTable.setColumnClass(2, String.class, true); // 2-Product + miniTable.setColumnClass(3, String.class, true); // 3-ASI + miniTable.setColumnClass(4, BigDecimal.class, true); // 4-Qty + miniTable.setColumnClass(5, BigDecimal.class, false); // 5-Delivered Qty + miniTable.setColumnClass(6, String.class, true); // 6-Description + + // Table UI + miniTable.autoSize(); + } + + @Override + public boolean save(IMiniTable miniTable, String trxName) + { + log.config(""); + int M_RMA_ID = Env.getContextAsInt(Env.getCtx(), getGridTab().getWindowNo(), "M_RMA_ID"); + +// Integer bpId = (Integer)bPartnerField.getValue(); + MRMA rma = new MRMA(Env.getCtx(), M_RMA_ID, trxName); + //update BP +// rma.setC_BPartner_ID(bpId); + + for (int i = 0; i < miniTable.getRowCount(); i++) + { + if (((Boolean)miniTable.getValueAt(i, 0)).booleanValue()) + { + BigDecimal d = (BigDecimal)miniTable.getValueAt(i, 5); // 5-Movement Qty + KeyNamePair pp = (KeyNamePair)miniTable.getValueAt(i, 1); // 1-Line + + int inOutLineId = pp.getKey(); + MInOutLine iol = new MInOutLine(rma.getCtx(), inOutLineId, rma.get_TrxName()); + MRMALine rmaLine = new MRMALine(rma.getCtx(), 0, rma.get_TrxName()); + rmaLine.setM_RMA_ID(M_RMA_ID); + rmaLine.setM_InOutLine_ID(inOutLineId); + rmaLine.setQty(d); + rmaLine.setAD_Org_ID(rma.getAD_Org_ID()); + rmaLine.setDescription((String)miniTable.getValueAt(i, 6)); + if (!rmaLine.save()) + { + throw new IllegalStateException("Could not create RMA Line"); + } + List attLines = new Query(Env.getCtx(), X_M_InOutLineMA.Table_Name, "M_InOutLine_ID =?", trxName) + .setParameters(new Object[] { inOutLineId }) + .setOnlyActiveRecords(true) + .list(); + log.severe(iol.getM_AttributeSetInstance_ID()+" "); + if(attLines.size()<=0) + rmaLine.set_ValueNoCheck("M_AttributeSetInstance_ID", iol.getM_AttributeSetInstance_ID()); + else { + for(MInOutLineMA attLine : attLines) { + X_M_RMAMA inoutAtt = new X_M_RMAMA(rma.getCtx(), 0, rma.get_TrxName()); + inoutAtt.setAD_Org_ID(attLine.getAD_Org_ID()); + inoutAtt.setM_InOutLine_ID(iol.getM_InOutLine_ID()); + inoutAtt.setM_RMALine_ID(rmaLine.get_ID()); + inoutAtt.setIsAutoGenerated(false); + inoutAtt.setM_AttributeSetInstance_ID(attLine.getM_AttributeSetInstance_ID()); + inoutAtt.setMovementQty(attLine.getMovementQty()); + inoutAtt.setDateMaterialPolicy(attLine.getDateMaterialPolicy()); + inoutAtt.saveEx(); + } + } + + + } + } + rma.saveEx(); + return true; + } + + protected Vector getOISColumnNames() + { + // Header Info + Vector columnNames = new Vector(7); + columnNames.add(Msg.getMsg(Env.getCtx(), "Select")); + columnNames.add(Msg.translate(Env.getCtx(), "Line")); + columnNames.add(Msg.translate(Env.getCtx(), "M_Product_ID")); + columnNames.add(Msg.translate(Env.getCtx(), "SerNo")); + columnNames.add(Msg.translate(Env.getCtx(), "Quantity")); + columnNames.add(Msg.getElement(Env.getCtx(), "QtyDelivered", false)); + columnNames.add(Msg.translate(Env.getCtx(), "Description")); + + return columnNames; + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromRequisition.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromRequisition.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromRequisition.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromRequisition.java index 694fdb9..5235923 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromRequisition.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromRequisition.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.form; +package balinusa.midsuit.form; import java.util.Vector; import java.util.logging.Level; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromShipment.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromShipment.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromShipment.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromShipment.java index c744074..c28e32e 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromShipment.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_CreateFromShipment.java @@ -12,7 +12,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * *****************************************************************************/ -package andromedia.midsuit.form; +package balinusa.midsuit.form; import java.math.BigDecimal; import java.sql.PreparedStatement; @@ -50,8 +50,8 @@ import org.compiere.util.Env; import org.compiere.util.KeyNamePair; import org.compiere.util.Msg; -import andromedia.midsuit.model.X_C_OrderLineMA; -import andromedia.midsuit.model.X_M_RMAMA; +import balinusa.midsuit.model.X_C_OrderLineMA; +import balinusa.midsuit.model.X_M_RMAMA; /** * Create Invoice Transactions from PO Orders or Receipt diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromInvoice.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromInvoice.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromInvoice.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromInvoice.java index aa5a09e..9c52343 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromInvoice.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromInvoice.java @@ -1,475 +1,475 @@ -package andromedia.midsuit.form; - -import static org.compiere.model.SystemIDs.COLUMN_C_INVOICE_C_BPARTNER_ID; - -import java.util.ArrayList; -import java.util.Vector; -import java.util.logging.Level; - -import org.adempiere.webui.ClientInfo; -import org.adempiere.webui.LayoutUtils; -import org.adempiere.webui.apps.AEnv; -import org.adempiere.webui.apps.form.WCreateFromInvoiceUI; -import org.adempiere.webui.apps.form.WCreateFromWindow; -import org.adempiere.webui.component.Column; -import org.adempiere.webui.component.Columns; -import org.adempiere.webui.component.Grid; -import org.adempiere.webui.component.GridFactory; -import org.adempiere.webui.component.Label; -import org.adempiere.webui.component.ListItem; -import org.adempiere.webui.component.ListModelTable; -import org.adempiere.webui.component.Listbox; -import org.adempiere.webui.component.ListboxFactory; -import org.adempiere.webui.component.Panel; -import org.adempiere.webui.component.Row; -import org.adempiere.webui.component.Rows; -import org.adempiere.webui.editor.WEditor; -import org.adempiere.webui.editor.WSearchEditor; -import org.adempiere.webui.event.ValueChangeEvent; -import org.adempiere.webui.event.ValueChangeListener; -import org.adempiere.webui.util.ZKUpdateUtil; -import org.compiere.grid.CreateFromInvoice; -import org.compiere.model.GridTab; -import org.compiere.model.MDocType; -import org.compiere.model.MLookup; -import org.compiere.model.MLookupFactory; -import org.compiere.util.CLogger; -import org.compiere.util.DisplayType; -import org.compiere.util.Env; -import org.compiere.util.KeyNamePair; -import org.compiere.util.Msg; -import org.zkoss.zk.ui.Component; -import org.zkoss.zk.ui.event.Event; -import org.zkoss.zk.ui.event.EventListener; -import org.zkoss.zul.Space; - -public class MID_WCreateFromInvoice extends MID_CreateFromInvoice implements EventListener, ValueChangeListener -{ - private WCreateFromWindow window; - - public MID_WCreateFromInvoice(GridTab tab) - { - super(tab); - log.info(getGridTab().toString()); - - window = new WCreateFromWindow(this, getGridTab().getWindowNo()); - - p_WindowNo = getGridTab().getWindowNo(); - - try - { - if (!dynInit()) - return; - zkInit(); - setInitOK(true); - } - catch(Exception e) - { - log.log(Level.SEVERE, "", e); - setInitOK(false); - } - AEnv.showWindow(window); - } - - /** Window No */ - private int p_WindowNo; - - /** Logger */ - private CLogger log = CLogger.getCLogger(getClass()); - - protected Label bPartnerLabel = new Label(); - protected WEditor bPartnerField; - - protected Label orderLabel = new Label(); - protected Listbox orderField = ListboxFactory.newDropdownListbox(); - - protected Label shipmentLabel = new Label(); - protected Listbox shipmentField = ListboxFactory.newDropdownListbox(); - - /** Label for the rma selection */ - protected Label rmaLabel = new Label(); - /** Combo box for selecting RMA document */ - protected Listbox rmaField = ListboxFactory.newDropdownListbox(); - - private Grid parameterStdLayout; - - /** - * Dynamic Init - * @throws Exception if Lookups cannot be initialized - * @return true if initialized - */ - public boolean dynInit() throws Exception - { - log.config(""); - - super.dynInit(); - - window.setTitle(getTitle()); - - // RMA Selection option should only be available for AP Credit Memo - Integer docTypeId = (Integer)getGridTab().getValue("C_DocTypeTarget_ID"); - MDocType docType = MDocType.get(Env.getCtx(), docTypeId); - if (!MDocType.DOCBASETYPE_APCreditMemo.equals(docType.getDocBaseType()) && !MDocType.DOCBASETYPE_ARCreditMemo.equals(docType.getDocBaseType())) - { - rmaLabel.setVisible(false); - rmaField.setVisible(false); - } - - initBPartner(true); - bPartnerField.addValueChangeListener(this); - - return true; - } // dynInit - - protected void zkInit() throws Exception - { - bPartnerLabel.setText(Msg.getElement(Env.getCtx(), "C_BPartner_ID")); - orderLabel.setText(Msg.getElement(Env.getCtx(), "C_Order_ID", isSOTrx)); - shipmentLabel.setText(Msg.getElement(Env.getCtx(), "M_InOut_ID", isSOTrx)); - rmaLabel.setText(Msg.translate(Env.getCtx(), "M_RMA_ID")); - - Panel parameterPanel = window.getParameterPanel(); - - parameterStdLayout = GridFactory.newGridLayout(); - Panel parameterStdPanel = new Panel(); - parameterStdPanel.appendChild(parameterStdLayout); - - setupColumns(parameterStdLayout); - - parameterPanel.appendChild(parameterStdPanel); - ZKUpdateUtil.setVflex(parameterStdLayout, "min"); - - Rows rows = (Rows) parameterStdLayout.newRows(); - Row row = rows.newRow(); - row.appendChild(bPartnerLabel.rightAlign()); - if (bPartnerField != null) - row.appendChild(bPartnerField.getComponent()); - row.appendChild(orderLabel.rightAlign()); - ZKUpdateUtil.setHflex(orderField, "1"); - row.appendChild(orderField); - - row = rows.newRow(); - row.appendChild(new Space()); - row.appendChild(new Space()); - row.appendChild(shipmentLabel.rightAlign()); - ZKUpdateUtil.setHflex(shipmentField, "1"); - row.appendChild(shipmentField); - - // Add RMA document selection to panel - row = rows.newRow(); - row.appendChild(new Space()); - row.appendChild(new Space()); - row.appendChild(rmaLabel.rightAlign()); - ZKUpdateUtil.setHflex(rmaField, "1"); - row.appendChild(rmaField); - - if (ClientInfo.isMobile()) { - if (noOfParameterColumn == 2) - LayoutUtils.compactTo(parameterStdLayout, 2); - ClientInfo.onClientInfo(window, this::onClientInfo); - } - - hideEmptyRow(rows); - } - - private void hideEmptyRow(org.zkoss.zul.Rows rows) { - for(Component a : rows.getChildren()) { - Row row = (Row) a; - boolean visible = false; - for(Component b : row.getChildren()) { - if (b instanceof Space) - continue; - else if (!b.isVisible()) { - continue; - } else { - if (!b.getChildren().isEmpty()) { - for (Component c : b.getChildren()) { - if (c.isVisible()) { - visible = true; - break; - } - } - } else { - visible = true; - break; - } - } - } - row.setVisible(visible); - } - } - - private boolean m_actionActive = false; - - private int noOfParameterColumn; - - /** - * Action Listener - * @param e event - * @throws Exception - */ - public void onEvent(Event e) throws Exception - { - if (m_actionActive) - return; - m_actionActive = true; - - // Order - if (e.getTarget().equals(orderField)) - { - ListItem li = orderField.getSelectedItem(); - int C_Order_ID = 0; - if (li != null && li.getValue() != null) - C_Order_ID = ((Integer) li.getValue()).intValue(); - // set Invoice, RMA and Shipment to Null - rmaField.setSelectedIndex(-1); - shipmentField.setSelectedIndex(-1); - loadOrder(C_Order_ID, true); - } - // Shipment - else if (e.getTarget().equals(shipmentField)) - { - ListItem li = shipmentField.getSelectedItem(); - int M_InOut_ID = 0; - if (li != null && li.getValue() != null) - M_InOut_ID = ((Integer) li.getValue()).intValue(); - // set Order, RMA and Invoice to Null - orderField.setSelectedIndex(-1); - rmaField.setSelectedIndex(-1); - loadShipment(M_InOut_ID); - } - // RMA - else if (e.getTarget().equals(rmaField)) - { - ListItem li = rmaField.getSelectedItem(); - int M_RMA_ID = 0; - if (li != null && li.getValue() != null) - M_RMA_ID = ((Integer) li.getValue()).intValue(); - // set Order and Invoice to Null - orderField.setSelectedIndex(-1); - shipmentField.setSelectedIndex(-1); - loadRMA(M_RMA_ID); - } - m_actionActive = false; - } - - /** - * Change Listener - * @param e event - */ - public void valueChange (ValueChangeEvent e) - { - if (log.isLoggable(Level.CONFIG)) log.config(e.getPropertyName() + "=" + e.getNewValue()); - - // BPartner - load Order/Invoice/Shipment - if (e.getPropertyName().equals("C_BPartner_ID")) - { - int C_BPartner_ID = ((Integer)e.getNewValue()).intValue(); - initBPOrderDetails (C_BPartner_ID, true); - } - window.tableChanged(null); - } // vetoableChange - - /************************************************************************** - * Load BPartner Field - * @param forInvoice true if Invoices are to be created, false receipts - * @throws Exception if Lookups cannot be initialized - */ - protected void initBPartner (boolean forInvoice) throws Exception - { - // load BPartner - int AD_Column_ID = COLUMN_C_INVOICE_C_BPARTNER_ID; // C_Invoice.C_BPartner_ID - MLookup lookup = MLookupFactory.get (Env.getCtx(), p_WindowNo, 0, AD_Column_ID, DisplayType.Search); - bPartnerField = new WSearchEditor ("C_BPartner_ID", true, false, true, lookup); - // - int C_BPartner_ID = Env.getContextAsInt(Env.getCtx(), p_WindowNo, "C_BPartner_ID"); - bPartnerField.setValue(new Integer(C_BPartner_ID)); - - // initial loading - initBPOrderDetails(C_BPartner_ID, forInvoice); - } // initBPartner - - /** - * Load PBartner dependent Order/Invoice/Shipment Field. - * @param C_BPartner_ID BPartner - * @param forInvoice for invoice - */ - protected void initBPOrderDetails (int C_BPartner_ID, boolean forInvoice) - { - if (log.isLoggable(Level.CONFIG)) log.config("C_BPartner_ID=" + C_BPartner_ID); - KeyNamePair pp = new KeyNamePair(0,""); - // load PO Orders - Closed, Completed - orderField.removeActionListener(this); - orderField.removeAllItems(); - orderField.addItem(pp); - - ArrayList list = loadOrderData(C_BPartner_ID, forInvoice, false); - for(KeyNamePair knp : list) - orderField.addItem(knp); - - orderField.setSelectedIndex(0); - orderField.addActionListener(this); - - initBPDetails(C_BPartner_ID); - } // initBPartnerOIS - - public void initBPDetails(int C_BPartner_ID) - { - initBPShipmentDetails(C_BPartner_ID); - initBPRMADetails(C_BPartner_ID); - } - - /** - * Load PBartner dependent Order/Invoice/Shipment Field. - * @param C_BPartner_ID - */ - private void initBPShipmentDetails(int C_BPartner_ID) - { - if (log.isLoggable(Level.CONFIG)) log.config("C_BPartner_ID" + C_BPartner_ID); - - // load Shipments (Receipts) - Completed, Closed - shipmentField.removeActionListener(this); - shipmentField.removeAllItems(); - // None - KeyNamePair pp = new KeyNamePair(0,""); - shipmentField.addItem(pp); - - ArrayList list = loadShipmentData(C_BPartner_ID); - for(KeyNamePair knp : list) - shipmentField.addItem(knp); - - shipmentField.setSelectedIndex(0); - shipmentField.addActionListener(this); - } - - /** - * Load RMA that are candidates for shipment - * @param C_BPartner_ID BPartner - */ - private void initBPRMADetails(int C_BPartner_ID) - { - rmaField.removeActionListener(this); - rmaField.removeAllItems(); - // None - KeyNamePair pp = new KeyNamePair(0,""); - rmaField.addItem(pp); - - ArrayList list = loadRMAData(C_BPartner_ID); - for(KeyNamePair knp : list) - rmaField.addItem(knp); - - rmaField.setSelectedIndex(0); - rmaField.addActionListener(this); - } - - /** - * Load Data - Order - * @param C_Order_ID Order - * @param forInvoice true if for invoice vs. delivery qty - */ - protected void loadOrder (int C_Order_ID, boolean forInvoice) - { - loadTableOIS(getOrderData(C_Order_ID, forInvoice)); - } // LoadOrder - - protected void loadRMA (int M_RMA_ID) - { - loadTableOIS(getRMAData(M_RMA_ID)); - } - - protected void loadShipment (int M_InOut_ID) - { - loadTableOIS(getShipmentData(M_InOut_ID)); - } - - /** - * Load Order/Invoice/Shipment data into Table - * @param data data - */ - protected void loadTableOIS (Vector data) - { - window.getWListbox().clear(); - - // Remove previous listeners - window.getWListbox().getModel().removeTableModelListener(window); - // Set Model - ListModelTable model = new ListModelTable(data); - model.addTableModelListener(window); - window.getWListbox().setData(model, getOISColumnNames()); - // - - configureMiniTable(window.getWListbox()); - } // loadOrder - - public void showWindow() - { - window.setVisible(true); - } - - public void closeWindow() - { - window.dispose(); - } - - @Override - public Object getWindow() { - return window; - } - - protected void setupColumns(Grid parameterGrid) { - noOfParameterColumn = ClientInfo.maxWidth((ClientInfo.EXTRA_SMALL_WIDTH+ClientInfo.SMALL_WIDTH)/2) ? 2 : 4; - Columns columns = new Columns(); - parameterGrid.appendChild(columns); - if (ClientInfo.maxWidth((ClientInfo.EXTRA_SMALL_WIDTH+ClientInfo.SMALL_WIDTH)/2)) - { - Column column = new Column(); - ZKUpdateUtil.setWidth(column, "35%"); - columns.appendChild(column); - column = new Column(); - ZKUpdateUtil.setWidth(column, "65%"); - columns.appendChild(column); - } - else - { - Column column = new Column(); - columns.appendChild(column); - column = new Column(); - ZKUpdateUtil.setWidth(column, "15%"); - columns.appendChild(column); - ZKUpdateUtil.setWidth(column, "35%"); - column = new Column(); - ZKUpdateUtil.setWidth(column, "15%"); - columns.appendChild(column); - column = new Column(); - ZKUpdateUtil.setWidth(column, "35%"); - columns.appendChild(column); - } - } - - protected void onClientInfo() - { - if (ClientInfo.isMobile() && parameterStdLayout != null && parameterStdLayout.getRows() != null) - { - int nc = ClientInfo.maxWidth((ClientInfo.EXTRA_SMALL_WIDTH+ClientInfo.SMALL_WIDTH)/2) ? 2 : 4; - int cc = noOfParameterColumn; - if (nc == cc) - return; - - parameterStdLayout.getColumns().detach(); - setupColumns(parameterStdLayout); - if (cc > nc) - { - LayoutUtils.compactTo(parameterStdLayout, nc); - } - else - { - LayoutUtils.expandTo(parameterStdLayout, nc, false); - } - hideEmptyRow(parameterStdLayout.getRows()); - - ZKUpdateUtil.setCSSHeight(window); - ZKUpdateUtil.setCSSWidth(window); - window.invalidate(); - } - } -} +package balinusa.midsuit.form; + +import static org.compiere.model.SystemIDs.COLUMN_C_INVOICE_C_BPARTNER_ID; + +import java.util.ArrayList; +import java.util.Vector; +import java.util.logging.Level; + +import org.adempiere.webui.ClientInfo; +import org.adempiere.webui.LayoutUtils; +import org.adempiere.webui.apps.AEnv; +import org.adempiere.webui.apps.form.WCreateFromInvoiceUI; +import org.adempiere.webui.apps.form.WCreateFromWindow; +import org.adempiere.webui.component.Column; +import org.adempiere.webui.component.Columns; +import org.adempiere.webui.component.Grid; +import org.adempiere.webui.component.GridFactory; +import org.adempiere.webui.component.Label; +import org.adempiere.webui.component.ListItem; +import org.adempiere.webui.component.ListModelTable; +import org.adempiere.webui.component.Listbox; +import org.adempiere.webui.component.ListboxFactory; +import org.adempiere.webui.component.Panel; +import org.adempiere.webui.component.Row; +import org.adempiere.webui.component.Rows; +import org.adempiere.webui.editor.WEditor; +import org.adempiere.webui.editor.WSearchEditor; +import org.adempiere.webui.event.ValueChangeEvent; +import org.adempiere.webui.event.ValueChangeListener; +import org.adempiere.webui.util.ZKUpdateUtil; +import org.compiere.grid.CreateFromInvoice; +import org.compiere.model.GridTab; +import org.compiere.model.MDocType; +import org.compiere.model.MLookup; +import org.compiere.model.MLookupFactory; +import org.compiere.util.CLogger; +import org.compiere.util.DisplayType; +import org.compiere.util.Env; +import org.compiere.util.KeyNamePair; +import org.compiere.util.Msg; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zul.Space; + +public class MID_WCreateFromInvoice extends MID_CreateFromInvoice implements EventListener, ValueChangeListener +{ + private WCreateFromWindow window; + + public MID_WCreateFromInvoice(GridTab tab) + { + super(tab); + log.info(getGridTab().toString()); + + window = new WCreateFromWindow(this, getGridTab().getWindowNo()); + + p_WindowNo = getGridTab().getWindowNo(); + + try + { + if (!dynInit()) + return; + zkInit(); + setInitOK(true); + } + catch(Exception e) + { + log.log(Level.SEVERE, "", e); + setInitOK(false); + } + AEnv.showWindow(window); + } + + /** Window No */ + private int p_WindowNo; + + /** Logger */ + private CLogger log = CLogger.getCLogger(getClass()); + + protected Label bPartnerLabel = new Label(); + protected WEditor bPartnerField; + + protected Label orderLabel = new Label(); + protected Listbox orderField = ListboxFactory.newDropdownListbox(); + + protected Label shipmentLabel = new Label(); + protected Listbox shipmentField = ListboxFactory.newDropdownListbox(); + + /** Label for the rma selection */ + protected Label rmaLabel = new Label(); + /** Combo box for selecting RMA document */ + protected Listbox rmaField = ListboxFactory.newDropdownListbox(); + + private Grid parameterStdLayout; + + /** + * Dynamic Init + * @throws Exception if Lookups cannot be initialized + * @return true if initialized + */ + public boolean dynInit() throws Exception + { + log.config(""); + + super.dynInit(); + + window.setTitle(getTitle()); + + // RMA Selection option should only be available for AP Credit Memo + Integer docTypeId = (Integer)getGridTab().getValue("C_DocTypeTarget_ID"); + MDocType docType = MDocType.get(Env.getCtx(), docTypeId); + if (!MDocType.DOCBASETYPE_APCreditMemo.equals(docType.getDocBaseType()) && !MDocType.DOCBASETYPE_ARCreditMemo.equals(docType.getDocBaseType())) + { + rmaLabel.setVisible(false); + rmaField.setVisible(false); + } + + initBPartner(true); + bPartnerField.addValueChangeListener(this); + + return true; + } // dynInit + + protected void zkInit() throws Exception + { + bPartnerLabel.setText(Msg.getElement(Env.getCtx(), "C_BPartner_ID")); + orderLabel.setText(Msg.getElement(Env.getCtx(), "C_Order_ID", isSOTrx)); + shipmentLabel.setText(Msg.getElement(Env.getCtx(), "M_InOut_ID", isSOTrx)); + rmaLabel.setText(Msg.translate(Env.getCtx(), "M_RMA_ID")); + + Panel parameterPanel = window.getParameterPanel(); + + parameterStdLayout = GridFactory.newGridLayout(); + Panel parameterStdPanel = new Panel(); + parameterStdPanel.appendChild(parameterStdLayout); + + setupColumns(parameterStdLayout); + + parameterPanel.appendChild(parameterStdPanel); + ZKUpdateUtil.setVflex(parameterStdLayout, "min"); + + Rows rows = (Rows) parameterStdLayout.newRows(); + Row row = rows.newRow(); + row.appendChild(bPartnerLabel.rightAlign()); + if (bPartnerField != null) + row.appendChild(bPartnerField.getComponent()); + row.appendChild(orderLabel.rightAlign()); + ZKUpdateUtil.setHflex(orderField, "1"); + row.appendChild(orderField); + + row = rows.newRow(); + row.appendChild(new Space()); + row.appendChild(new Space()); + row.appendChild(shipmentLabel.rightAlign()); + ZKUpdateUtil.setHflex(shipmentField, "1"); + row.appendChild(shipmentField); + + // Add RMA document selection to panel + row = rows.newRow(); + row.appendChild(new Space()); + row.appendChild(new Space()); + row.appendChild(rmaLabel.rightAlign()); + ZKUpdateUtil.setHflex(rmaField, "1"); + row.appendChild(rmaField); + + if (ClientInfo.isMobile()) { + if (noOfParameterColumn == 2) + LayoutUtils.compactTo(parameterStdLayout, 2); + ClientInfo.onClientInfo(window, this::onClientInfo); + } + + hideEmptyRow(rows); + } + + private void hideEmptyRow(org.zkoss.zul.Rows rows) { + for(Component a : rows.getChildren()) { + Row row = (Row) a; + boolean visible = false; + for(Component b : row.getChildren()) { + if (b instanceof Space) + continue; + else if (!b.isVisible()) { + continue; + } else { + if (!b.getChildren().isEmpty()) { + for (Component c : b.getChildren()) { + if (c.isVisible()) { + visible = true; + break; + } + } + } else { + visible = true; + break; + } + } + } + row.setVisible(visible); + } + } + + private boolean m_actionActive = false; + + private int noOfParameterColumn; + + /** + * Action Listener + * @param e event + * @throws Exception + */ + public void onEvent(Event e) throws Exception + { + if (m_actionActive) + return; + m_actionActive = true; + + // Order + if (e.getTarget().equals(orderField)) + { + ListItem li = orderField.getSelectedItem(); + int C_Order_ID = 0; + if (li != null && li.getValue() != null) + C_Order_ID = ((Integer) li.getValue()).intValue(); + // set Invoice, RMA and Shipment to Null + rmaField.setSelectedIndex(-1); + shipmentField.setSelectedIndex(-1); + loadOrder(C_Order_ID, true); + } + // Shipment + else if (e.getTarget().equals(shipmentField)) + { + ListItem li = shipmentField.getSelectedItem(); + int M_InOut_ID = 0; + if (li != null && li.getValue() != null) + M_InOut_ID = ((Integer) li.getValue()).intValue(); + // set Order, RMA and Invoice to Null + orderField.setSelectedIndex(-1); + rmaField.setSelectedIndex(-1); + loadShipment(M_InOut_ID); + } + // RMA + else if (e.getTarget().equals(rmaField)) + { + ListItem li = rmaField.getSelectedItem(); + int M_RMA_ID = 0; + if (li != null && li.getValue() != null) + M_RMA_ID = ((Integer) li.getValue()).intValue(); + // set Order and Invoice to Null + orderField.setSelectedIndex(-1); + shipmentField.setSelectedIndex(-1); + loadRMA(M_RMA_ID); + } + m_actionActive = false; + } + + /** + * Change Listener + * @param e event + */ + public void valueChange (ValueChangeEvent e) + { + if (log.isLoggable(Level.CONFIG)) log.config(e.getPropertyName() + "=" + e.getNewValue()); + + // BPartner - load Order/Invoice/Shipment + if (e.getPropertyName().equals("C_BPartner_ID")) + { + int C_BPartner_ID = ((Integer)e.getNewValue()).intValue(); + initBPOrderDetails (C_BPartner_ID, true); + } + window.tableChanged(null); + } // vetoableChange + + /************************************************************************** + * Load BPartner Field + * @param forInvoice true if Invoices are to be created, false receipts + * @throws Exception if Lookups cannot be initialized + */ + protected void initBPartner (boolean forInvoice) throws Exception + { + // load BPartner + int AD_Column_ID = COLUMN_C_INVOICE_C_BPARTNER_ID; // C_Invoice.C_BPartner_ID + MLookup lookup = MLookupFactory.get (Env.getCtx(), p_WindowNo, 0, AD_Column_ID, DisplayType.Search); + bPartnerField = new WSearchEditor ("C_BPartner_ID", true, false, true, lookup); + // + int C_BPartner_ID = Env.getContextAsInt(Env.getCtx(), p_WindowNo, "C_BPartner_ID"); + bPartnerField.setValue(new Integer(C_BPartner_ID)); + + // initial loading + initBPOrderDetails(C_BPartner_ID, forInvoice); + } // initBPartner + + /** + * Load PBartner dependent Order/Invoice/Shipment Field. + * @param C_BPartner_ID BPartner + * @param forInvoice for invoice + */ + protected void initBPOrderDetails (int C_BPartner_ID, boolean forInvoice) + { + if (log.isLoggable(Level.CONFIG)) log.config("C_BPartner_ID=" + C_BPartner_ID); + KeyNamePair pp = new KeyNamePair(0,""); + // load PO Orders - Closed, Completed + orderField.removeActionListener(this); + orderField.removeAllItems(); + orderField.addItem(pp); + + ArrayList list = loadOrderData(C_BPartner_ID, forInvoice, false); + for(KeyNamePair knp : list) + orderField.addItem(knp); + + orderField.setSelectedIndex(0); + orderField.addActionListener(this); + + initBPDetails(C_BPartner_ID); + } // initBPartnerOIS + + public void initBPDetails(int C_BPartner_ID) + { + initBPShipmentDetails(C_BPartner_ID); + initBPRMADetails(C_BPartner_ID); + } + + /** + * Load PBartner dependent Order/Invoice/Shipment Field. + * @param C_BPartner_ID + */ + private void initBPShipmentDetails(int C_BPartner_ID) + { + if (log.isLoggable(Level.CONFIG)) log.config("C_BPartner_ID" + C_BPartner_ID); + + // load Shipments (Receipts) - Completed, Closed + shipmentField.removeActionListener(this); + shipmentField.removeAllItems(); + // None + KeyNamePair pp = new KeyNamePair(0,""); + shipmentField.addItem(pp); + + ArrayList list = loadShipmentData(C_BPartner_ID); + for(KeyNamePair knp : list) + shipmentField.addItem(knp); + + shipmentField.setSelectedIndex(0); + shipmentField.addActionListener(this); + } + + /** + * Load RMA that are candidates for shipment + * @param C_BPartner_ID BPartner + */ + private void initBPRMADetails(int C_BPartner_ID) + { + rmaField.removeActionListener(this); + rmaField.removeAllItems(); + // None + KeyNamePair pp = new KeyNamePair(0,""); + rmaField.addItem(pp); + + ArrayList list = loadRMAData(C_BPartner_ID); + for(KeyNamePair knp : list) + rmaField.addItem(knp); + + rmaField.setSelectedIndex(0); + rmaField.addActionListener(this); + } + + /** + * Load Data - Order + * @param C_Order_ID Order + * @param forInvoice true if for invoice vs. delivery qty + */ + protected void loadOrder (int C_Order_ID, boolean forInvoice) + { + loadTableOIS(getOrderData(C_Order_ID, forInvoice)); + } // LoadOrder + + protected void loadRMA (int M_RMA_ID) + { + loadTableOIS(getRMAData(M_RMA_ID)); + } + + protected void loadShipment (int M_InOut_ID) + { + loadTableOIS(getShipmentData(M_InOut_ID)); + } + + /** + * Load Order/Invoice/Shipment data into Table + * @param data data + */ + protected void loadTableOIS (Vector data) + { + window.getWListbox().clear(); + + // Remove previous listeners + window.getWListbox().getModel().removeTableModelListener(window); + // Set Model + ListModelTable model = new ListModelTable(data); + model.addTableModelListener(window); + window.getWListbox().setData(model, getOISColumnNames()); + // + + configureMiniTable(window.getWListbox()); + } // loadOrder + + public void showWindow() + { + window.setVisible(true); + } + + public void closeWindow() + { + window.dispose(); + } + + @Override + public Object getWindow() { + return window; + } + + protected void setupColumns(Grid parameterGrid) { + noOfParameterColumn = ClientInfo.maxWidth((ClientInfo.EXTRA_SMALL_WIDTH+ClientInfo.SMALL_WIDTH)/2) ? 2 : 4; + Columns columns = new Columns(); + parameterGrid.appendChild(columns); + if (ClientInfo.maxWidth((ClientInfo.EXTRA_SMALL_WIDTH+ClientInfo.SMALL_WIDTH)/2)) + { + Column column = new Column(); + ZKUpdateUtil.setWidth(column, "35%"); + columns.appendChild(column); + column = new Column(); + ZKUpdateUtil.setWidth(column, "65%"); + columns.appendChild(column); + } + else + { + Column column = new Column(); + columns.appendChild(column); + column = new Column(); + ZKUpdateUtil.setWidth(column, "15%"); + columns.appendChild(column); + ZKUpdateUtil.setWidth(column, "35%"); + column = new Column(); + ZKUpdateUtil.setWidth(column, "15%"); + columns.appendChild(column); + column = new Column(); + ZKUpdateUtil.setWidth(column, "35%"); + columns.appendChild(column); + } + } + + protected void onClientInfo() + { + if (ClientInfo.isMobile() && parameterStdLayout != null && parameterStdLayout.getRows() != null) + { + int nc = ClientInfo.maxWidth((ClientInfo.EXTRA_SMALL_WIDTH+ClientInfo.SMALL_WIDTH)/2) ? 2 : 4; + int cc = noOfParameterColumn; + if (nc == cc) + return; + + parameterStdLayout.getColumns().detach(); + setupColumns(parameterStdLayout); + if (cc > nc) + { + LayoutUtils.compactTo(parameterStdLayout, nc); + } + else + { + LayoutUtils.expandTo(parameterStdLayout, nc, false); + } + hideEmptyRow(parameterStdLayout.getRows()); + + ZKUpdateUtil.setCSSHeight(window); + ZKUpdateUtil.setCSSWidth(window); + window.invalidate(); + } + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromOrder.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromOrder.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromOrder.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromOrder.java index 3068a94..0e07e9c 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromOrder.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromOrder.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.form; +package balinusa.midsuit.form; import static org.compiere.model.SystemIDs.COLUMN_C_INVOICELINE_M_PRODUCT_ID; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromRMA.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromRMA.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromRMA.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromRMA.java index d83d877..d58c23b 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromRMA.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromRMA.java @@ -1,204 +1,204 @@ -/****************************************************************************** - * Copyright (C) 2009 Low Heng Sin * - * Copyright (C) 2009 Idalica Corporation * - * This program is free software; you can redistribute it and/or modify it * - * under the terms version 2 of the GNU General Public License as published * - * by the Free Software Foundation. This program is distributed in the hope * - * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * - * See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along * - * with this program; if not, write to the Free Software Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * - *****************************************************************************/ -package andromedia.midsuit.form; - -import java.util.Vector; - -import java.util.logging.Level; - -import org.adempiere.webui.ClientInfo; -import org.adempiere.webui.apps.AEnv; -import org.adempiere.webui.apps.form.WCreateFromWindow; -import org.adempiere.webui.component.Grid; -import org.adempiere.webui.component.GridFactory; -import org.adempiere.webui.component.Label; -import org.adempiere.webui.component.ListModelTable; -import org.adempiere.webui.component.Panel; -import org.adempiere.webui.component.Row; -import org.adempiere.webui.component.Rows; -import org.adempiere.webui.editor.WEditor; -import org.adempiere.webui.editor.WSearchEditor; -import org.adempiere.webui.event.ValueChangeEvent; -import org.adempiere.webui.event.ValueChangeListener; -import org.adempiere.webui.util.ZKUpdateUtil; -import org.compiere.model.GridTab; -import org.compiere.model.MLookup; -import org.compiere.model.MLookupFactory; - -import static org.compiere.model.SystemIDs.*; - -import org.compiere.util.CLogger; -import org.compiere.util.DisplayType; -import org.compiere.util.Env; -import org.compiere.util.Msg; - -public class MID_WCreateFromRMA extends MID_CreateFromRMA implements ValueChangeListener -{ - private WCreateFromWindow window; - - public MID_WCreateFromRMA(GridTab tab) - { - super(tab); - log.info(getGridTab().toString()); - - window = new WCreateFromWindow(this, getGridTab().getWindowNo()); - - p_WindowNo = getGridTab().getWindowNo(); - - try - { - if (!dynInit()) - return; - zkInit(); - setInitOK(true); - } - catch(Exception e) - { - log.log(Level.SEVERE, "", e); - setInitOK(false); - } - AEnv.showWindow(window); - } - - /** Window No */ - private int p_WindowNo; - - /** Logger */ - private CLogger log = CLogger.getCLogger(getClass()); - - protected Label bPartnerLabel = new Label(); - protected WEditor bPartnerField; - - /** - * Dynamic Init - * @throws Exception if Lookups cannot be initialized - * @return true if initialized - */ - public boolean dynInit() throws Exception - { - log.config(""); - - super.dynInit(); - - window.setTitle(getTitle()); - - initBPartner(true); - bPartnerField.addValueChangeListener(this); - - loadRMA(); - - return true; - } // dynInit - - protected void zkInit() throws Exception - { - bPartnerLabel.setText(Msg.getElement(Env.getCtx(), "C_BPartner_ID")); - - Panel parameterPanel = window.getParameterPanel(); - - Grid parameterStdLayout = GridFactory.newGridLayout(); - Panel parameterStdPanel = new Panel(); - parameterStdPanel.appendChild(parameterStdLayout); - - parameterPanel.appendChild(parameterStdPanel); - ZKUpdateUtil.setVflex(parameterStdLayout, "min"); - - Rows rows = (Rows) parameterStdLayout.newRows(); - Row row = rows.newRow(); - row.appendChild(bPartnerLabel.rightAlign()); - if (bPartnerField != null) - row.appendChild(bPartnerField.getComponent()); - - if (ClientInfo.isMobile()) { - ClientInfo.onClientInfo(window, this::onClientInfo); - } - } - - /** - * Change Listener - * @param e event - */ - public void valueChange (ValueChangeEvent e) - { - if (log.isLoggable(Level.CONFIG)) log.config(e.getPropertyName() + "=" + e.getNewValue()); - - // BPartner - load Order/Invoice/Shipment - if (e.getPropertyName().equals("C_BPartner_ID")) - { - loadRMA(); - } - window.tableChanged(null); - } // vetoableChange - - /************************************************************************** - * Load BPartner Field - * @param forInvoice true if Invoices are to be created, false receipts - * @throws Exception if Lookups cannot be initialized - */ - protected void initBPartner (boolean forInvoice) throws Exception - { - // load BPartner - int AD_Column_ID = COLUMN_C_INVOICE_C_BPARTNER_ID; // C_Invoice.C_BPartner_ID - MLookup lookup = MLookupFactory.get (Env.getCtx(), p_WindowNo, 0, AD_Column_ID, DisplayType.Search); - bPartnerField = new WSearchEditor ("C_BPartner_ID", true, false, true, lookup); - // - int C_BPartner_ID = Env.getContextAsInt(Env.getCtx(), p_WindowNo, "C_BPartner_ID"); - bPartnerField.setValue(new Integer(C_BPartner_ID)); - } // initBPartner - - protected void loadRMA() - { - loadTableOIS(getRMAData()); - } - - /** - * Load Order/Invoice/Shipment data into Table - * @param data data - */ - protected void loadTableOIS (Vector data) - { - window.getWListbox().clear(); - - // Remove previous listeners - window.getWListbox().getModel().removeTableModelListener(window); - // Set Model - ListModelTable model = new ListModelTable(data); - model.addTableModelListener(window); - window.getWListbox().setData(model, getOISColumnNames()); - // - - configureMiniTable(window.getWListbox()); - } // loadOrder - - public void showWindow() - { - window.setVisible(true); - } - - public void closeWindow() - { - window.dispose(); - } - - @Override - public Object getWindow() { - return window; - } - - protected void onClientInfo() { - ZKUpdateUtil.setCSSHeight(window); - ZKUpdateUtil.setCSSWidth(window); - window.invalidate(); - } -} +/****************************************************************************** + * Copyright (C) 2009 Low Heng Sin * + * Copyright (C) 2009 Idalica Corporation * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program; if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + *****************************************************************************/ +package balinusa.midsuit.form; + +import java.util.Vector; + +import java.util.logging.Level; + +import org.adempiere.webui.ClientInfo; +import org.adempiere.webui.apps.AEnv; +import org.adempiere.webui.apps.form.WCreateFromWindow; +import org.adempiere.webui.component.Grid; +import org.adempiere.webui.component.GridFactory; +import org.adempiere.webui.component.Label; +import org.adempiere.webui.component.ListModelTable; +import org.adempiere.webui.component.Panel; +import org.adempiere.webui.component.Row; +import org.adempiere.webui.component.Rows; +import org.adempiere.webui.editor.WEditor; +import org.adempiere.webui.editor.WSearchEditor; +import org.adempiere.webui.event.ValueChangeEvent; +import org.adempiere.webui.event.ValueChangeListener; +import org.adempiere.webui.util.ZKUpdateUtil; +import org.compiere.model.GridTab; +import org.compiere.model.MLookup; +import org.compiere.model.MLookupFactory; + +import static org.compiere.model.SystemIDs.*; + +import org.compiere.util.CLogger; +import org.compiere.util.DisplayType; +import org.compiere.util.Env; +import org.compiere.util.Msg; + +public class MID_WCreateFromRMA extends MID_CreateFromRMA implements ValueChangeListener +{ + private WCreateFromWindow window; + + public MID_WCreateFromRMA(GridTab tab) + { + super(tab); + log.info(getGridTab().toString()); + + window = new WCreateFromWindow(this, getGridTab().getWindowNo()); + + p_WindowNo = getGridTab().getWindowNo(); + + try + { + if (!dynInit()) + return; + zkInit(); + setInitOK(true); + } + catch(Exception e) + { + log.log(Level.SEVERE, "", e); + setInitOK(false); + } + AEnv.showWindow(window); + } + + /** Window No */ + private int p_WindowNo; + + /** Logger */ + private CLogger log = CLogger.getCLogger(getClass()); + + protected Label bPartnerLabel = new Label(); + protected WEditor bPartnerField; + + /** + * Dynamic Init + * @throws Exception if Lookups cannot be initialized + * @return true if initialized + */ + public boolean dynInit() throws Exception + { + log.config(""); + + super.dynInit(); + + window.setTitle(getTitle()); + + initBPartner(true); + bPartnerField.addValueChangeListener(this); + + loadRMA(); + + return true; + } // dynInit + + protected void zkInit() throws Exception + { + bPartnerLabel.setText(Msg.getElement(Env.getCtx(), "C_BPartner_ID")); + + Panel parameterPanel = window.getParameterPanel(); + + Grid parameterStdLayout = GridFactory.newGridLayout(); + Panel parameterStdPanel = new Panel(); + parameterStdPanel.appendChild(parameterStdLayout); + + parameterPanel.appendChild(parameterStdPanel); + ZKUpdateUtil.setVflex(parameterStdLayout, "min"); + + Rows rows = (Rows) parameterStdLayout.newRows(); + Row row = rows.newRow(); + row.appendChild(bPartnerLabel.rightAlign()); + if (bPartnerField != null) + row.appendChild(bPartnerField.getComponent()); + + if (ClientInfo.isMobile()) { + ClientInfo.onClientInfo(window, this::onClientInfo); + } + } + + /** + * Change Listener + * @param e event + */ + public void valueChange (ValueChangeEvent e) + { + if (log.isLoggable(Level.CONFIG)) log.config(e.getPropertyName() + "=" + e.getNewValue()); + + // BPartner - load Order/Invoice/Shipment + if (e.getPropertyName().equals("C_BPartner_ID")) + { + loadRMA(); + } + window.tableChanged(null); + } // vetoableChange + + /************************************************************************** + * Load BPartner Field + * @param forInvoice true if Invoices are to be created, false receipts + * @throws Exception if Lookups cannot be initialized + */ + protected void initBPartner (boolean forInvoice) throws Exception + { + // load BPartner + int AD_Column_ID = COLUMN_C_INVOICE_C_BPARTNER_ID; // C_Invoice.C_BPartner_ID + MLookup lookup = MLookupFactory.get (Env.getCtx(), p_WindowNo, 0, AD_Column_ID, DisplayType.Search); + bPartnerField = new WSearchEditor ("C_BPartner_ID", true, false, true, lookup); + // + int C_BPartner_ID = Env.getContextAsInt(Env.getCtx(), p_WindowNo, "C_BPartner_ID"); + bPartnerField.setValue(new Integer(C_BPartner_ID)); + } // initBPartner + + protected void loadRMA() + { + loadTableOIS(getRMAData()); + } + + /** + * Load Order/Invoice/Shipment data into Table + * @param data data + */ + protected void loadTableOIS (Vector data) + { + window.getWListbox().clear(); + + // Remove previous listeners + window.getWListbox().getModel().removeTableModelListener(window); + // Set Model + ListModelTable model = new ListModelTable(data); + model.addTableModelListener(window); + window.getWListbox().setData(model, getOISColumnNames()); + // + + configureMiniTable(window.getWListbox()); + } // loadOrder + + public void showWindow() + { + window.setVisible(true); + } + + public void closeWindow() + { + window.dispose(); + } + + @Override + public Object getWindow() { + return window; + } + + protected void onClientInfo() { + ZKUpdateUtil.setCSSHeight(window); + ZKUpdateUtil.setCSSWidth(window); + window.invalidate(); + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromRequisition.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromRequisition.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromRequisition.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromRequisition.java index 93246c6..6d19659 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromRequisition.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromRequisition.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.form; +package balinusa.midsuit.form; import java.util.logging.Level; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromShipment.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromShipment.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromShipment.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromShipment.java index 760fdcf..6fbb805 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromShipment.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WCreateFromShipment.java @@ -12,7 +12,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * *****************************************************************************/ -package andromedia.midsuit.form; +package balinusa.midsuit.form; import java.math.BigDecimal; import java.util.ArrayList; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WExport.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WExport.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WExport.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WExport.java index 2705cf5..4522eb7 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/MID_WExport.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/MID_WExport.java @@ -1,514 +1,514 @@ -package andromedia.midsuit.form; - -import static org.compiere.model.SystemIDs.COLUMN_C_PAYSELECTIONCHECK_C_PAYSELECTION_ID; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.sql.Date; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.text.SimpleDateFormat; -import java.util.Vector; -import java.util.logging.Level; - -import org.adempiere.exceptions.AdempiereException; -import org.adempiere.webui.component.Button; -import org.adempiere.webui.component.ConfirmPanel; -import org.adempiere.webui.component.Grid; -import org.adempiere.webui.component.GridFactory; -import org.adempiere.webui.component.Label; -import org.adempiere.webui.component.Panel; -import org.adempiere.webui.component.Row; -import org.adempiere.webui.component.Rows; -import org.adempiere.webui.editor.WDateEditor; -import org.adempiere.webui.editor.WTableDirEditor; -import org.adempiere.webui.event.ValueChangeEvent; -import org.adempiere.webui.event.ValueChangeListener; -import org.adempiere.webui.panel.ADForm; -import org.adempiere.webui.panel.CustomForm; -import org.adempiere.webui.panel.IFormController; -import org.adempiere.webui.session.SessionManager; -import org.adempiere.webui.util.ZKUpdateUtil; -import org.compiere.apps.form.PayPrint; -import org.compiere.model.MLookup; -import org.compiere.model.MLookupFactory; -import org.compiere.util.CLogger; -import org.compiere.util.DB; -import org.compiere.util.DisplayType; -import org.compiere.util.Env; -import org.compiere.util.Msg; -import org.zkoss.zk.ui.event.Event; -import org.zkoss.zk.ui.event.EventListener; -import org.zkoss.zul.Borderlayout; -import org.zkoss.zul.Center; -import org.zkoss.zul.Filedownload; -import org.zkoss.zul.South; - -public class MID_WExport implements IFormController, EventListener, ValueChangeListener { - private CustomForm form = new CustomForm(); - private int m_WindowNo = 0; - public static CLogger log = CLogger.getCLogger(PayPrint.class); - - /** - * Initialize Panel - */ - public MID_WExport() { - try { - m_WindowNo = form.getWindowNo(); - dynInit(); - zkInit(); - Borderlayout contentLayout = new Borderlayout(); - ZKUpdateUtil.setWidth(contentLayout, "100%"); - ZKUpdateUtil.setHeight(contentLayout, "100%"); - form.appendChild(contentLayout); - Center center = new Center(); - contentLayout.appendChild(center); - center.appendChild(centerPanel); - South south = new South(); - south.setStyle("border: none"); - contentLayout.appendChild(south); - south.appendChild(southPanel); - } catch (Exception e) { - log.log(Level.SEVERE, "", e); - } - } // init - - // Static Variables - protected Label lDateForm = new Label(); - protected WDateEditor dateFrom = new WDateEditor("DateFrom", false, false, true, "DateFrom"); - protected Label lDateTo = new Label(); - protected WDateEditor dateTo = new WDateEditor("DateTo", false, false, true, "DateTo"); - protected Label lFaktur = new Label(); - protected Panel centerPanel = new Panel(); - protected ConfirmPanel southPanel = new ConfirmPanel(true, false, false, false, false, false, false); - protected Grid centerLayout = GridFactory.newGridLayout(); - protected Button bPrint = southPanel.createButton(ConfirmPanel.A_PRINT); - protected Button bExport = southPanel.createButton(ConfirmPanel.A_EXPORT); - protected Button bCancel = southPanel.getButton(ConfirmPanel.A_CANCEL); - protected Button bProcess = southPanel.createButton(ConfirmPanel.A_PROCESS); - protected WTableDirEditor TIPE; - - /** - * Static Init - * - * @throws Exception - */ - protected void zkInit() throws Exception { - // - centerPanel.appendChild(centerLayout); - // - bPrint.addActionListener(this); - bExport.addActionListener(this); - bCancel.addActionListener(this); - // - bProcess.setEnabled(false); - bProcess.addActionListener(this); - // - lDateTo.setText(Msg.translate(Env.getCtx(), "Date To")); - lDateForm.setText(Msg.translate(Env.getCtx(), "Date From")); - lFaktur.setText("Jenis Faktur"); - // - Rows rows = centerLayout.newRows(); - - Row row = rows.newRow(); - row.appendChild(lDateForm.rightAlign()); - row.appendChild(dateFrom.getComponent()); - row.appendChild(lDateTo.rightAlign()); - row.appendChild(dateTo.getComponent()); - row.appendChild(lFaktur.rightAlign()); - row.appendChild(TIPE.getComponent()); - ZKUpdateUtil.setHflex(TIPE.getComponent(), "100%"); - TIPE.showMenu(); - row = rows.newRow(); - row.appendCellChild(bExport); - southPanel.getButton(ConfirmPanel.A_OK).setVisible(false); - } // VPayPrint - - /** - * Dynamic Init - */ - protected void dynInit() { - // C_PaySelection_ID - int AD_Column_ID = COLUMN_C_PAYSELECTIONCHECK_C_PAYSELECTION_ID; // C_PaySelectionCheck.C_PaySelection_ID - MLookup lookupPS = MLookupFactory.get(Env.getCtx(), m_WindowNo, 0, AD_Column_ID, DisplayType.Search); - - try { - - MLookup lookupTIPE = MLookupFactory.get(Env.getCtx(), form.getWindowNo(), - 148/* C_Invoice.DocAction */, DisplayType.TableDir, Env.getLanguage(Env.getCtx()), "AD_Ref_List_ID", - 0, false, - "AD_Reference_ID IN (Select AD_Reference_ID from AD_Reference where upper(name)='FAKTURREF')"); - TIPE = new WTableDirEditor("Value", true, false, true, lookupTIPE); - TIPE.setValue(Env.getAD_Org_ID(Env.getCtx())); - TIPE.addValueChangeListener(this); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } // dynInit - - /** - * Dispose - */ - public void dispose() { - SessionManager.getAppDesktop().closeActiveWindow(); - } // dispose - - @Override - public void valueChange(ValueChangeEvent evt) { - // TODO Auto-generated method stub - - } - - @Override - public void onEvent(Event ev) throws Exception { - if (ev.getTarget() == bCancel) { - dispose(); - } - if (ev.getTarget() == bExport) { - cmd_export(); - } - - } - - @Override - public ADForm getForm() { - // TODO Auto-generated method stub - return form; - } - - protected void cmd_export() { - if (dateFrom.getValue() == null || dateTo.getValue() == null) - return; - File file = null; - try { - file = File.createTempFile("HasilFakturPajak", ".csv"); - } catch (IOException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - char x = '"'; // ease - String t = "\"=\""; // force to text - int noLines = 0; - StringBuffer line = null; - try { - FileWriter fw = new FileWriter(file); - // write header - String yn = TIPE.getComponent().getValue().equals("Keluaran") ? "Y" : "N"; - if (yn.equals("Y")) { - line = new StringBuffer(); - line.append(x).append("FK").append(x).append(",").append(x).append("KD_JENIS_TRANSAKSI").append(x) - .append(",").append(x).append("FG_PENGGANTI").append(x).append(",").append(x) - .append("NOMOR_FAKTUR").append(x).append(",").append(x).append("MASA_PAJAK").append(x) - .append(",").append(x).append("TAHUN_PAJAK").append(x).append(",").append(x) - .append("TANGGAL_FAKTUR").append(x).append(",").append(x).append("NPWP").append(x).append(",") - .append(x).append("NAMA").append(x).append(",").append(x).append("ALAMAT_LENGKAP").append(x) - .append(",").append(x).append("JUMLAH_DPP").append(x).append(",").append(x).append("JUMLAH_PPN") - .append(x).append(",").append(x).append("JUMLAH_PPNBM").append(x).append(",").append(x) - .append("ID_KETERANGAN_TAMBAHAN").append(x).append(",").append(x).append("FG_UANG_MUKA") - .append(x).append(",").append(x).append("UANG_MUKA_DPP").append(x).append(",").append(x) - .append("UANG_MUKA_PPN").append(x).append(",").append(x).append("UANG_MUKA_PPNBM").append(x) - .append(",").append(x).append("REFERENSI").append(x).append(Env.NL); - line.append(x).append("LT").append(x).append(",").append(x).append("NPWP").append(x).append(",") - .append(x).append("NAMA").append(x).append(",").append(x).append("JALAN").append(x).append(",") - .append(x).append("BLOK").append(x).append(",").append(x).append("NOMOR").append(x).append(",") - .append(x).append("RT").append(x).append(",").append(x).append("RW").append(x).append(",") - .append(x).append("KECAMATAN").append(x).append(",").append(x).append("KELURAHAN").append(x) - .append(",").append(x).append("KABUPATEN").append(x).append(",").append(x).append("PROPINSI") - .append(x).append(",").append(x).append("KODE_POS").append(x).append(",").append(x) - .append("NOMOR_TELEPON").append(x).append(",").append(Env.NL); - line.append(x).append("OF").append(x).append(",").append(x).append("KODE_OBJEK").append(x).append(",") - .append(x).append("NAMA").append(x).append(",").append(x).append("HARGA_SATUAN").append(x) - .append(",").append(x).append("JUMLAH_BARANG").append(x).append(",").append(x) - .append("HARGA_TOTAL").append(x).append(",").append(x).append("DISKON").append(x).append(",") - .append(x).append("DPP").append(x).append(",").append(x).append("PPN").append(x).append(",") - .append(x).append("TARIF_PPNBM").append(x).append(",").append(x).append("PPNBM").append(x) - .append(Env.NL); - noLines++; - } - if (yn.equals("N")) { - line = new StringBuffer(); - line.append(x).append("FM").append(x).append(",").append(x).append("KD_JENIS_TRANSAKSI").append(x) - .append(",").append(x).append("FG_PENGGANTI").append(x).append(",").append(x) - .append("NOMOR_FAKTUR").append(x).append(",").append(x).append("MASA_PAJAK").append(x) - .append(",").append(x).append("TAHUN_PAJAK").append(x).append(",").append(x) - .append("TANGGAL_FAKTUR").append(x).append(",").append(x).append("NPWP").append(x).append(",") - .append(x).append("NAMA").append(x).append(",").append(x).append("ALAMAT_LENGKAP").append(x) - .append(",").append(x).append("JUMLAH_DPP").append(x).append(",").append(x).append("JUMLAH_PPN") - .append(x).append(",").append(x).append("JUMLAH_PPNBM").append(x).append(",").append(x) - .append("IS_CREDITABLE").append(x).append(Env.NL); - noLines++; - } - - // write lines - Vector> bp; - if (yn.equalsIgnoreCase("Y")) { - bp = getDataKeluaran(); - String lastDoc = ""; - for (Vector data : bp) { - if (data.get(3) == null) - data.setElementAt("null", 3); - String doc = data.get(3).toString(); - if (!lastDoc.equalsIgnoreCase(data.get(3).toString()) || data.get(3).toString().equals("null")) { - line.append(x).append(data.get(0).toString()).append(x).append(",") // Value - .append(x).append(t).append(data.get(1).toString()).append(x).append(",") // Name - .append(x).append(data.get(2).toString()).append(x).append(",") // Addr1 - .append(x).append(t).append(data.get(3).toString()).append(x).append(",").append(x) - .append(data.get(4).toString()).append(x).append(",").append(x) - .append(data.get(5).toString()).append(x).append(",").append(x) - .append(data.get(6).toString()).append(x).append(",").append(x).append(t) - .append(data.get(7).toString()).append(x).append(",").append(x) - .append(data.get(8).toString()).append(x).append(",").append(x) - .append(data.get(9).toString()).append(x).append(",").append(x) - .append(data.get(10).toString()).append(x).append(",").append(x) - .append(data.get(11).toString()).append(x).append(",").append(x) - .append(data.get(12).toString()).append(x).append(",").append(x) - .append(data.get(13).toString()).append(x).append(",").append(x) - .append(data.get(14).toString()).append(x).append(",").append(x) - .append(data.get(15).toString()).append(x).append(",").append(x) - .append(data.get(16).toString()).append(x).append(",").append(x) - .append(data.get(17).toString()).append(x).append(",").append(x) - .append(data.get(18).toString()).append(x).append(Env.NL); - } - log.severe(data.get(28).toString()); - line.append(x).append(data.get(21).toString()).append(x).append(",").append(x) - .append(data.get(20).toString()).append(x).append(",").append(x) - .append(data.get(22).toString()).append(x).append(",").append(x) - .append(data.get(23).toString()).append(x).append(",").append(x) - .append(data.get(24).toString()).append(x).append(",").append(x) - .append(data.get(25).toString()).append(x).append(",").append(x) - .append(data.get(26).toString()).append(x).append(",").append(x) - .append(data.get(25).toString()).append(x).append(",").append(x) - .append((new BigDecimal(data.get(28).toString()).setScale(0,BigDecimal.ROUND_DOWN)).toString()).append(x).append(",").append(x) - .append(data.get(31).toString()).append(x).append(",").append(x) - .append(data.get(31).toString()).append(x).append(Env.NL); - lastDoc = data.get(3).toString(); - //ChangetoPernah(data.get(20).toString()); - String sql2 = "Update C_Invoice SET sudahpernah ='Y' where C_Invoice_ID ='" + data.get(19).toString() +"'"; - DB.executeUpdate(sql2,null); - noLines++; - } // end of while write line - } // DROPDOWN KELUARAN - if (yn.equalsIgnoreCase("N")) { - bp = getDataMasukkan(); - log.severe(dateFrom.getValue().toString()); - log.severe(dateTo.getValue().toString()); - for (Vector data : bp) { - - line.append(x).append(data.get(0).toString()).append(x).append(",").append(x) - .append(data.get(1).toString()).append(x).append(",").append(x) - .append(data.get(2).toString()).append(x).append(",=").append(x) - .append(data.get(3).toString()).append(x).append(",").append(x) - .append(data.get(4).toString()).append(x).append(",").append(x) - .append(data.get(5).toString()).append(x).append(",").append(x) - .append(data.get(6).toString()).append(x).append(",").append(x) - .append(data.get(7).toString()).append(x).append(",").append(x) - .append(data.get(8).toString()).append(x).append(",").append(x) - .append(data.get(9).toString()).append(x).append(",").append(x) - .append(data.get(10).toString()).append(x).append(",").append(x) - .append(data.get(11).toString()).append(x).append(",").append(x) - .append(data.get(12).toString()).append(x).append(",").append(x) - .append(data.get(13).toString()).append(x).append(Env.NL); - String sql2 = "Update C_Invoice SET sudahpernah ='Y' where C_Invoice_ID ='" + data.get(14).toString() +"'"; - DB.executeUpdate(sql2,null); - noLines++; - } // END FOR - } // DROPDOWN MASUKKAN - - fw.write(line.toString()); - - fw.flush(); - fw.close(); - if (noLines > 0) { - Filedownload.save(new FileInputStream(file), "plain/text", "payment.csv"); - } - } catch (Exception e) { - - log.severe(e.toString()); - } - - } - - private Vector> getDataMasukkan() { - Vector> data = new Vector>(); - Vector line = null; - String sql2 = "select 'FM' as Tipe, coalesce(substr(iv.nofakturpajak,1,2),'') as jenis_transaksi, coalesce(substr(iv.nofakturpajak,3,1),'') as FGPengganti, coalesce(substr(iv.nofakturpajak,4),'-')," - + " extract(Month from iv.dateinvoiced) as Masapajak, extract(Year from iv.dateinvoiced) as TahunPajak, coalesce(to_char(iv.fakturdate,'dd/MM/yyyy'),' ') as tanggalfaktur," - + " coalesce(bp.npwp,' ') , coalesce(bp.name2,bp.name) as namapartner, coalesce(loc.address1,' ') as alamat, floor(iv.totallines) as jumlahDPP, floor(iv.totallines * 10/100) as PPN,'0' as PPNBM,'1' as isCreditable,iv.c_invoice_id " - + " from c_invoice iv left join c_bpartner bp on bp.c_bpartner_id = iv.c_bpartner_id left join c_bpartner_location bpl on bp.c_bpartner_id = bpl.c_bpartner_id left join c_location loc on loc.c_location_id = bpl.c_location_id where iv.dikreditkan='Y' and iv.sudahpernah = 'N' and iv.issotrx ='N' " - + " and iv.ad_client_id = '1000004' and iv.dateinvoiced between '"+ dateFrom.getValue().toString() + "' and '" + dateTo.getValue().toString() + "' order by iv.dateinvoiced"; - PreparedStatement pstmt = null; - ResultSet rs = null; - try { - pstmt = DB.prepareStatement(sql2, null); - rs = pstmt.executeQuery(); - while (rs.next()) { - line = new Vector(); - line.add(rs.getString(1)); - line.add(rs.getString(2)); - line.add(rs.getString(3)); - //line.add(rs.getString(4)); - - String nofak = rs.getString(4); - char a = '0'; - if(nofak.equals("-") == true) - { - line.add(rs.getString(4)); - } - else - { - for(int i=0; i> getDataKeluaran() { - Vector> data = new Vector>(); - Vector line = null; - String sql = " select * from ( select iv.ad_client_Id as client_id ,'FK' as head, coalesce(substr(fa.documentno,1,2),'') as kodetransaksi, coalesce(fa.documentno,'') as nodoc, " - +" date_part('month',iv.dateinvoiced) as monthinvoiced, extract(Year from iv.dateinvoiced) as extractyear, iv.dateinvoiced as tglnya, coalesce(bp.npwp,'') as npwp," - +" coalesce(bp.name2,bp.name), (select coalesce(getFirstLocation(bp.C_BPartner_ID),'-')) " - + " as alamat,floor(iv.totallines) as jumlahDPP,floor(iv.totallines * 10/100) as ppn,iv.documentno as invoicedoc, iv.c_invoice_id as invoiceid from c_invoice iv " - +" join c_faktur fa on fa.c_invoice_Id = iv.c_invoice_id left join c_bpartner bp on bp.c_bpartner_id = iv.c_bpartner_id " - + " where iv.dikreditkan='Y' and iv.sudahpernah = 'N' and iv.issotrx = 'Y' and iv.ad_client_id ='"+Env.getAD_Client_ID(Env.getCtx())+"' and iv.dateinvoiced between '"+dateFrom.getValue().toString()+"' and '"+ dateTo.getValue().toString() +"' ) as head " - + " left join (select 'OF' as lines, coalesce(coalesce(me.merk,pr.name),ch.name) as produkname, round(ivl.priceentered,2) as hargasatuan,round(ivl.qtyinvoiced,0) as qty, floor(ivl.linenetamt) as hargatot, " - +" '0' as diskon,floor(ivl.priceentered * ivl.qtyinvoiced) as dpp ,floor((ivl.priceentered * ivl.qtyinvoiced ) * 10/100) as ppn,'0' as ppnbm, '0' as tarifppnbm ,ivl.c_invoice_id as invoiceid " - +" from c_invoice iv left join c_invoiceline ivl on iv.c_invoice_id = ivl.c_invoice_id " - +" left join m_product pr on ivl.m_product_id = pr.m_product_id " - + " left join c_charge ch on ch.c_charge_id = ivl.c_charge_id " - + " left join ps_merk me on me.m_product_id = ivl.m_product_id and me.c_bpartner_id = iv.c_bpartner_id " - + "where ivl.isdescription='N' ORDER BY ivl.line ) as child on head.invoiceid = child.invoiceid ORDER BY head.tglnya ,head.invoiceid "; - PreparedStatement pstmt = null; - ResultSet rs = null; - try { - pstmt = DB.prepareStatement(sql, null); - rs = pstmt.executeQuery(); - while (rs.next()) { - line = new Vector(); - line.add(rs.getString(2)); - line.add(rs.getString(3)); - line.add("0"); - - line.add((rs.getString(4).split("\\.")).length>0 ? rs.getString(4).split("\\.")[1] : rs.getString(4)); - line.add(rs.getString(5)); - line.add(rs.getString(6)); - line.add(new SimpleDateFormat("dd/MM/yyyy").format(rs.getTimestamp(7))); - line.add(rs.getString(8)); - line.add(rs.getString(9)); - line.add(rs.getString(10)); - line.add(rs.getBigDecimal(11)); - line.add(rs.getBigDecimal(12)); - line.add("0"); - line.add("0"); - line.add("0"); - line.add("0"); - line.add("0"); - line.add("0"); - line.add(rs.getString(13)); - line.add(rs.getString(14)); //index 20 - line.add(""); - line.add(rs.getString(15)); - line.add(rs.getString(16)); - line.add(rs.getBigDecimal(17)); - line.add(rs.getBigDecimal(18)); - line.add(rs.getBigDecimal(19)); - line.add(rs.getBigDecimal(20)); - BigDecimal diskon = rs.getBigDecimal(19); - line.add(diskon.toString()); - line.add(diskon.divide(new BigDecimal(10), 2, RoundingMode.HALF_UP).toString()); - line.add(rs.getBigDecimal(21).toString()); - line.add(rs.getBigDecimal(22).toString()); - log.severe(rs.getBigDecimal(21).toString()); - log.severe(rs.getBigDecimal(22).toString()); - line.add(rs.getString(23)); - BigDecimal dpp = rs.getBigDecimal(24).setScale(0,BigDecimal.ROUND_UP); - line.add(dpp); - data.add(line); - } - } catch (Exception e) { - log.severe(e.getMessage()); - } - - return data; - } - - - - - private int getJumlahFaktur() { - int jumlah = 0; - String date1 = dateFrom.getDisplay(); - String date2 = dateTo.getDisplay(); - String sql = "select count(*) from c_faktur f " + "where f.created between to_date('" + dateFrom.getDisplay() - + "','MM/DD/YYYY') and to_date('" + dateTo.getDisplay() + "','MM/DD/YYYY')"; - - PreparedStatement ps = null; - ResultSet rs = null; - try { - ps = DB.prepareStatement(sql, null); - rs = ps.executeQuery(); - // - if (rs.next()) { - jumlah = rs.getInt(1); - } - } catch (SQLException e) { - } finally { - DB.close(rs, ps); - rs = null; - ps = null; - } - return jumlah; - - } - - - private void ChangetoPernah(String id) - { - int jumlah = 0; - String sql = "Update C_Invoice SET sudahpernah ='Y' where c_invoice_id ='" + id +"'"; - - PreparedStatement ps = null; - ResultSet rs = null; - try { - ps = DB.prepareStatement(sql, null); - rs = ps.executeQuery(); - } catch (SQLException e) { - } finally { - DB.close(rs, ps); - rs = null; - ps = null; - } - - } -} +package balinusa.midsuit.form; + +import static org.compiere.model.SystemIDs.COLUMN_C_PAYSELECTIONCHECK_C_PAYSELECTION_ID; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.sql.Date; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.Vector; +import java.util.logging.Level; + +import org.adempiere.exceptions.AdempiereException; +import org.adempiere.webui.component.Button; +import org.adempiere.webui.component.ConfirmPanel; +import org.adempiere.webui.component.Grid; +import org.adempiere.webui.component.GridFactory; +import org.adempiere.webui.component.Label; +import org.adempiere.webui.component.Panel; +import org.adempiere.webui.component.Row; +import org.adempiere.webui.component.Rows; +import org.adempiere.webui.editor.WDateEditor; +import org.adempiere.webui.editor.WTableDirEditor; +import org.adempiere.webui.event.ValueChangeEvent; +import org.adempiere.webui.event.ValueChangeListener; +import org.adempiere.webui.panel.ADForm; +import org.adempiere.webui.panel.CustomForm; +import org.adempiere.webui.panel.IFormController; +import org.adempiere.webui.session.SessionManager; +import org.adempiere.webui.util.ZKUpdateUtil; +import org.compiere.apps.form.PayPrint; +import org.compiere.model.MLookup; +import org.compiere.model.MLookupFactory; +import org.compiere.util.CLogger; +import org.compiere.util.DB; +import org.compiere.util.DisplayType; +import org.compiere.util.Env; +import org.compiere.util.Msg; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zul.Borderlayout; +import org.zkoss.zul.Center; +import org.zkoss.zul.Filedownload; +import org.zkoss.zul.South; + +public class MID_WExport implements IFormController, EventListener, ValueChangeListener { + private CustomForm form = new CustomForm(); + private int m_WindowNo = 0; + public static CLogger log = CLogger.getCLogger(PayPrint.class); + + /** + * Initialize Panel + */ + public MID_WExport() { + try { + m_WindowNo = form.getWindowNo(); + dynInit(); + zkInit(); + Borderlayout contentLayout = new Borderlayout(); + ZKUpdateUtil.setWidth(contentLayout, "100%"); + ZKUpdateUtil.setHeight(contentLayout, "100%"); + form.appendChild(contentLayout); + Center center = new Center(); + contentLayout.appendChild(center); + center.appendChild(centerPanel); + South south = new South(); + south.setStyle("border: none"); + contentLayout.appendChild(south); + south.appendChild(southPanel); + } catch (Exception e) { + log.log(Level.SEVERE, "", e); + } + } // init + + // Static Variables + protected Label lDateForm = new Label(); + protected WDateEditor dateFrom = new WDateEditor("DateFrom", false, false, true, "DateFrom"); + protected Label lDateTo = new Label(); + protected WDateEditor dateTo = new WDateEditor("DateTo", false, false, true, "DateTo"); + protected Label lFaktur = new Label(); + protected Panel centerPanel = new Panel(); + protected ConfirmPanel southPanel = new ConfirmPanel(true, false, false, false, false, false, false); + protected Grid centerLayout = GridFactory.newGridLayout(); + protected Button bPrint = southPanel.createButton(ConfirmPanel.A_PRINT); + protected Button bExport = southPanel.createButton(ConfirmPanel.A_EXPORT); + protected Button bCancel = southPanel.getButton(ConfirmPanel.A_CANCEL); + protected Button bProcess = southPanel.createButton(ConfirmPanel.A_PROCESS); + protected WTableDirEditor TIPE; + + /** + * Static Init + * + * @throws Exception + */ + protected void zkInit() throws Exception { + // + centerPanel.appendChild(centerLayout); + // + bPrint.addActionListener(this); + bExport.addActionListener(this); + bCancel.addActionListener(this); + // + bProcess.setEnabled(false); + bProcess.addActionListener(this); + // + lDateTo.setText(Msg.translate(Env.getCtx(), "Date To")); + lDateForm.setText(Msg.translate(Env.getCtx(), "Date From")); + lFaktur.setText("Jenis Faktur"); + // + Rows rows = centerLayout.newRows(); + + Row row = rows.newRow(); + row.appendChild(lDateForm.rightAlign()); + row.appendChild(dateFrom.getComponent()); + row.appendChild(lDateTo.rightAlign()); + row.appendChild(dateTo.getComponent()); + row.appendChild(lFaktur.rightAlign()); + row.appendChild(TIPE.getComponent()); + ZKUpdateUtil.setHflex(TIPE.getComponent(), "100%"); + TIPE.showMenu(); + row = rows.newRow(); + row.appendCellChild(bExport); + southPanel.getButton(ConfirmPanel.A_OK).setVisible(false); + } // VPayPrint + + /** + * Dynamic Init + */ + protected void dynInit() { + // C_PaySelection_ID + int AD_Column_ID = COLUMN_C_PAYSELECTIONCHECK_C_PAYSELECTION_ID; // C_PaySelectionCheck.C_PaySelection_ID + MLookup lookupPS = MLookupFactory.get(Env.getCtx(), m_WindowNo, 0, AD_Column_ID, DisplayType.Search); + + try { + + MLookup lookupTIPE = MLookupFactory.get(Env.getCtx(), form.getWindowNo(), + 148/* C_Invoice.DocAction */, DisplayType.TableDir, Env.getLanguage(Env.getCtx()), "AD_Ref_List_ID", + 0, false, + "AD_Reference_ID IN (Select AD_Reference_ID from AD_Reference where upper(name)='FAKTURREF')"); + TIPE = new WTableDirEditor("Value", true, false, true, lookupTIPE); + TIPE.setValue(Env.getAD_Org_ID(Env.getCtx())); + TIPE.addValueChangeListener(this); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } // dynInit + + /** + * Dispose + */ + public void dispose() { + SessionManager.getAppDesktop().closeActiveWindow(); + } // dispose + + @Override + public void valueChange(ValueChangeEvent evt) { + // TODO Auto-generated method stub + + } + + @Override + public void onEvent(Event ev) throws Exception { + if (ev.getTarget() == bCancel) { + dispose(); + } + if (ev.getTarget() == bExport) { + cmd_export(); + } + + } + + @Override + public ADForm getForm() { + // TODO Auto-generated method stub + return form; + } + + protected void cmd_export() { + if (dateFrom.getValue() == null || dateTo.getValue() == null) + return; + File file = null; + try { + file = File.createTempFile("HasilFakturPajak", ".csv"); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + char x = '"'; // ease + String t = "\"=\""; // force to text + int noLines = 0; + StringBuffer line = null; + try { + FileWriter fw = new FileWriter(file); + // write header + String yn = TIPE.getComponent().getValue().equals("Keluaran") ? "Y" : "N"; + if (yn.equals("Y")) { + line = new StringBuffer(); + line.append(x).append("FK").append(x).append(",").append(x).append("KD_JENIS_TRANSAKSI").append(x) + .append(",").append(x).append("FG_PENGGANTI").append(x).append(",").append(x) + .append("NOMOR_FAKTUR").append(x).append(",").append(x).append("MASA_PAJAK").append(x) + .append(",").append(x).append("TAHUN_PAJAK").append(x).append(",").append(x) + .append("TANGGAL_FAKTUR").append(x).append(",").append(x).append("NPWP").append(x).append(",") + .append(x).append("NAMA").append(x).append(",").append(x).append("ALAMAT_LENGKAP").append(x) + .append(",").append(x).append("JUMLAH_DPP").append(x).append(",").append(x).append("JUMLAH_PPN") + .append(x).append(",").append(x).append("JUMLAH_PPNBM").append(x).append(",").append(x) + .append("ID_KETERANGAN_TAMBAHAN").append(x).append(",").append(x).append("FG_UANG_MUKA") + .append(x).append(",").append(x).append("UANG_MUKA_DPP").append(x).append(",").append(x) + .append("UANG_MUKA_PPN").append(x).append(",").append(x).append("UANG_MUKA_PPNBM").append(x) + .append(",").append(x).append("REFERENSI").append(x).append(Env.NL); + line.append(x).append("LT").append(x).append(",").append(x).append("NPWP").append(x).append(",") + .append(x).append("NAMA").append(x).append(",").append(x).append("JALAN").append(x).append(",") + .append(x).append("BLOK").append(x).append(",").append(x).append("NOMOR").append(x).append(",") + .append(x).append("RT").append(x).append(",").append(x).append("RW").append(x).append(",") + .append(x).append("KECAMATAN").append(x).append(",").append(x).append("KELURAHAN").append(x) + .append(",").append(x).append("KABUPATEN").append(x).append(",").append(x).append("PROPINSI") + .append(x).append(",").append(x).append("KODE_POS").append(x).append(",").append(x) + .append("NOMOR_TELEPON").append(x).append(",").append(Env.NL); + line.append(x).append("OF").append(x).append(",").append(x).append("KODE_OBJEK").append(x).append(",") + .append(x).append("NAMA").append(x).append(",").append(x).append("HARGA_SATUAN").append(x) + .append(",").append(x).append("JUMLAH_BARANG").append(x).append(",").append(x) + .append("HARGA_TOTAL").append(x).append(",").append(x).append("DISKON").append(x).append(",") + .append(x).append("DPP").append(x).append(",").append(x).append("PPN").append(x).append(",") + .append(x).append("TARIF_PPNBM").append(x).append(",").append(x).append("PPNBM").append(x) + .append(Env.NL); + noLines++; + } + if (yn.equals("N")) { + line = new StringBuffer(); + line.append(x).append("FM").append(x).append(",").append(x).append("KD_JENIS_TRANSAKSI").append(x) + .append(",").append(x).append("FG_PENGGANTI").append(x).append(",").append(x) + .append("NOMOR_FAKTUR").append(x).append(",").append(x).append("MASA_PAJAK").append(x) + .append(",").append(x).append("TAHUN_PAJAK").append(x).append(",").append(x) + .append("TANGGAL_FAKTUR").append(x).append(",").append(x).append("NPWP").append(x).append(",") + .append(x).append("NAMA").append(x).append(",").append(x).append("ALAMAT_LENGKAP").append(x) + .append(",").append(x).append("JUMLAH_DPP").append(x).append(",").append(x).append("JUMLAH_PPN") + .append(x).append(",").append(x).append("JUMLAH_PPNBM").append(x).append(",").append(x) + .append("IS_CREDITABLE").append(x).append(Env.NL); + noLines++; + } + + // write lines + Vector> bp; + if (yn.equalsIgnoreCase("Y")) { + bp = getDataKeluaran(); + String lastDoc = ""; + for (Vector data : bp) { + if (data.get(3) == null) + data.setElementAt("null", 3); + String doc = data.get(3).toString(); + if (!lastDoc.equalsIgnoreCase(data.get(3).toString()) || data.get(3).toString().equals("null")) { + line.append(x).append(data.get(0).toString()).append(x).append(",") // Value + .append(x).append(t).append(data.get(1).toString()).append(x).append(",") // Name + .append(x).append(data.get(2).toString()).append(x).append(",") // Addr1 + .append(x).append(t).append(data.get(3).toString()).append(x).append(",").append(x) + .append(data.get(4).toString()).append(x).append(",").append(x) + .append(data.get(5).toString()).append(x).append(",").append(x) + .append(data.get(6).toString()).append(x).append(",").append(x).append(t) + .append(data.get(7).toString()).append(x).append(",").append(x) + .append(data.get(8).toString()).append(x).append(",").append(x) + .append(data.get(9).toString()).append(x).append(",").append(x) + .append(data.get(10).toString()).append(x).append(",").append(x) + .append(data.get(11).toString()).append(x).append(",").append(x) + .append(data.get(12).toString()).append(x).append(",").append(x) + .append(data.get(13).toString()).append(x).append(",").append(x) + .append(data.get(14).toString()).append(x).append(",").append(x) + .append(data.get(15).toString()).append(x).append(",").append(x) + .append(data.get(16).toString()).append(x).append(",").append(x) + .append(data.get(17).toString()).append(x).append(",").append(x) + .append(data.get(18).toString()).append(x).append(Env.NL); + } + log.severe(data.get(28).toString()); + line.append(x).append(data.get(21).toString()).append(x).append(",").append(x) + .append(data.get(20).toString()).append(x).append(",").append(x) + .append(data.get(22).toString()).append(x).append(",").append(x) + .append(data.get(23).toString()).append(x).append(",").append(x) + .append(data.get(24).toString()).append(x).append(",").append(x) + .append(data.get(25).toString()).append(x).append(",").append(x) + .append(data.get(26).toString()).append(x).append(",").append(x) + .append(data.get(25).toString()).append(x).append(",").append(x) + .append((new BigDecimal(data.get(28).toString()).setScale(0,BigDecimal.ROUND_DOWN)).toString()).append(x).append(",").append(x) + .append(data.get(31).toString()).append(x).append(",").append(x) + .append(data.get(31).toString()).append(x).append(Env.NL); + lastDoc = data.get(3).toString(); + //ChangetoPernah(data.get(20).toString()); + String sql2 = "Update C_Invoice SET sudahpernah ='Y' where C_Invoice_ID ='" + data.get(19).toString() +"'"; + DB.executeUpdate(sql2,null); + noLines++; + } // end of while write line + } // DROPDOWN KELUARAN + if (yn.equalsIgnoreCase("N")) { + bp = getDataMasukkan(); + log.severe(dateFrom.getValue().toString()); + log.severe(dateTo.getValue().toString()); + for (Vector data : bp) { + + line.append(x).append(data.get(0).toString()).append(x).append(",").append(x) + .append(data.get(1).toString()).append(x).append(",").append(x) + .append(data.get(2).toString()).append(x).append(",=").append(x) + .append(data.get(3).toString()).append(x).append(",").append(x) + .append(data.get(4).toString()).append(x).append(",").append(x) + .append(data.get(5).toString()).append(x).append(",").append(x) + .append(data.get(6).toString()).append(x).append(",").append(x) + .append(data.get(7).toString()).append(x).append(",").append(x) + .append(data.get(8).toString()).append(x).append(",").append(x) + .append(data.get(9).toString()).append(x).append(",").append(x) + .append(data.get(10).toString()).append(x).append(",").append(x) + .append(data.get(11).toString()).append(x).append(",").append(x) + .append(data.get(12).toString()).append(x).append(",").append(x) + .append(data.get(13).toString()).append(x).append(Env.NL); + String sql2 = "Update C_Invoice SET sudahpernah ='Y' where C_Invoice_ID ='" + data.get(14).toString() +"'"; + DB.executeUpdate(sql2,null); + noLines++; + } // END FOR + } // DROPDOWN MASUKKAN + + fw.write(line.toString()); + + fw.flush(); + fw.close(); + if (noLines > 0) { + Filedownload.save(new FileInputStream(file), "plain/text", "payment.csv"); + } + } catch (Exception e) { + + log.severe(e.toString()); + } + + } + + private Vector> getDataMasukkan() { + Vector> data = new Vector>(); + Vector line = null; + String sql2 = "select 'FM' as Tipe, coalesce(substr(iv.nofakturpajak,1,2),'') as jenis_transaksi, coalesce(substr(iv.nofakturpajak,3,1),'') as FGPengganti, coalesce(substr(iv.nofakturpajak,4),'-')," + + " extract(Month from iv.dateinvoiced) as Masapajak, extract(Year from iv.dateinvoiced) as TahunPajak, coalesce(to_char(iv.fakturdate,'dd/MM/yyyy'),' ') as tanggalfaktur," + + " coalesce(bp.npwp,' ') , coalesce(bp.name2,bp.name) as namapartner, coalesce(loc.address1,' ') as alamat, floor(iv.totallines) as jumlahDPP, floor(iv.totallines * 10/100) as PPN,'0' as PPNBM,'1' as isCreditable,iv.c_invoice_id " + + " from c_invoice iv left join c_bpartner bp on bp.c_bpartner_id = iv.c_bpartner_id left join c_bpartner_location bpl on bp.c_bpartner_id = bpl.c_bpartner_id left join c_location loc on loc.c_location_id = bpl.c_location_id where iv.dikreditkan='Y' and iv.sudahpernah = 'N' and iv.issotrx ='N' " + + " and iv.ad_client_id = '1000004' and iv.dateinvoiced between '"+ dateFrom.getValue().toString() + "' and '" + dateTo.getValue().toString() + "' order by iv.dateinvoiced"; + PreparedStatement pstmt = null; + ResultSet rs = null; + try { + pstmt = DB.prepareStatement(sql2, null); + rs = pstmt.executeQuery(); + while (rs.next()) { + line = new Vector(); + line.add(rs.getString(1)); + line.add(rs.getString(2)); + line.add(rs.getString(3)); + //line.add(rs.getString(4)); + + String nofak = rs.getString(4); + char a = '0'; + if(nofak.equals("-") == true) + { + line.add(rs.getString(4)); + } + else + { + for(int i=0; i> getDataKeluaran() { + Vector> data = new Vector>(); + Vector line = null; + String sql = " select * from ( select iv.ad_client_Id as client_id ,'FK' as head, coalesce(substr(fa.documentno,1,2),'') as kodetransaksi, coalesce(fa.documentno,'') as nodoc, " + +" date_part('month',iv.dateinvoiced) as monthinvoiced, extract(Year from iv.dateinvoiced) as extractyear, iv.dateinvoiced as tglnya, coalesce(bp.npwp,'') as npwp," + +" coalesce(bp.name2,bp.name), (select coalesce(getFirstLocation(bp.C_BPartner_ID),'-')) " + + " as alamat,floor(iv.totallines) as jumlahDPP,floor(iv.totallines * 10/100) as ppn,iv.documentno as invoicedoc, iv.c_invoice_id as invoiceid from c_invoice iv " + +" join c_faktur fa on fa.c_invoice_Id = iv.c_invoice_id left join c_bpartner bp on bp.c_bpartner_id = iv.c_bpartner_id " + + " where iv.dikreditkan='Y' and iv.sudahpernah = 'N' and iv.issotrx = 'Y' and iv.ad_client_id ='"+Env.getAD_Client_ID(Env.getCtx())+"' and iv.dateinvoiced between '"+dateFrom.getValue().toString()+"' and '"+ dateTo.getValue().toString() +"' ) as head " + + " left join (select 'OF' as lines, coalesce(coalesce(me.merk,pr.name),ch.name) as produkname, round(ivl.priceentered,2) as hargasatuan,round(ivl.qtyinvoiced,0) as qty, floor(ivl.linenetamt) as hargatot, " + +" '0' as diskon,floor(ivl.priceentered * ivl.qtyinvoiced) as dpp ,floor((ivl.priceentered * ivl.qtyinvoiced ) * 10/100) as ppn,'0' as ppnbm, '0' as tarifppnbm ,ivl.c_invoice_id as invoiceid " + +" from c_invoice iv left join c_invoiceline ivl on iv.c_invoice_id = ivl.c_invoice_id " + +" left join m_product pr on ivl.m_product_id = pr.m_product_id " + + " left join c_charge ch on ch.c_charge_id = ivl.c_charge_id " + + " left join ps_merk me on me.m_product_id = ivl.m_product_id and me.c_bpartner_id = iv.c_bpartner_id " + + "where ivl.isdescription='N' ORDER BY ivl.line ) as child on head.invoiceid = child.invoiceid ORDER BY head.tglnya ,head.invoiceid "; + PreparedStatement pstmt = null; + ResultSet rs = null; + try { + pstmt = DB.prepareStatement(sql, null); + rs = pstmt.executeQuery(); + while (rs.next()) { + line = new Vector(); + line.add(rs.getString(2)); + line.add(rs.getString(3)); + line.add("0"); + + line.add((rs.getString(4).split("\\.")).length>0 ? rs.getString(4).split("\\.")[1] : rs.getString(4)); + line.add(rs.getString(5)); + line.add(rs.getString(6)); + line.add(new SimpleDateFormat("dd/MM/yyyy").format(rs.getTimestamp(7))); + line.add(rs.getString(8)); + line.add(rs.getString(9)); + line.add(rs.getString(10)); + line.add(rs.getBigDecimal(11)); + line.add(rs.getBigDecimal(12)); + line.add("0"); + line.add("0"); + line.add("0"); + line.add("0"); + line.add("0"); + line.add("0"); + line.add(rs.getString(13)); + line.add(rs.getString(14)); //index 20 + line.add(""); + line.add(rs.getString(15)); + line.add(rs.getString(16)); + line.add(rs.getBigDecimal(17)); + line.add(rs.getBigDecimal(18)); + line.add(rs.getBigDecimal(19)); + line.add(rs.getBigDecimal(20)); + BigDecimal diskon = rs.getBigDecimal(19); + line.add(diskon.toString()); + line.add(diskon.divide(new BigDecimal(10), 2, RoundingMode.HALF_UP).toString()); + line.add(rs.getBigDecimal(21).toString()); + line.add(rs.getBigDecimal(22).toString()); + log.severe(rs.getBigDecimal(21).toString()); + log.severe(rs.getBigDecimal(22).toString()); + line.add(rs.getString(23)); + BigDecimal dpp = rs.getBigDecimal(24).setScale(0,BigDecimal.ROUND_UP); + line.add(dpp); + data.add(line); + } + } catch (Exception e) { + log.severe(e.getMessage()); + } + + return data; + } + + + + + private int getJumlahFaktur() { + int jumlah = 0; + String date1 = dateFrom.getDisplay(); + String date2 = dateTo.getDisplay(); + String sql = "select count(*) from c_faktur f " + "where f.created between to_date('" + dateFrom.getDisplay() + + "','MM/DD/YYYY') and to_date('" + dateTo.getDisplay() + "','MM/DD/YYYY')"; + + PreparedStatement ps = null; + ResultSet rs = null; + try { + ps = DB.prepareStatement(sql, null); + rs = ps.executeQuery(); + // + if (rs.next()) { + jumlah = rs.getInt(1); + } + } catch (SQLException e) { + } finally { + DB.close(rs, ps); + rs = null; + ps = null; + } + return jumlah; + + } + + + private void ChangetoPernah(String id) + { + int jumlah = 0; + String sql = "Update C_Invoice SET sudahpernah ='Y' where c_invoice_id ='" + id +"'"; + + PreparedStatement ps = null; + ResultSet rs = null; + try { + ps = DB.prepareStatement(sql, null); + rs = ps.executeQuery(); + } catch (SQLException e) { + } finally { + DB.close(rs, ps); + rs = null; + ps = null; + } + + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/WBillingListGenerate.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/WBillingListGenerate.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/WBillingListGenerate.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/WBillingListGenerate.java index 08b8446..d7fe251 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/WBillingListGenerate.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/WBillingListGenerate.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.form; +package balinusa.midsuit.form; import java.math.BigDecimal; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/form/WInvoiceLandedCost.java b/balinusa.midsuit.project/src/balinusa/midsuit/form/WInvoiceLandedCost.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/form/WInvoiceLandedCost.java rename to balinusa.midsuit.project/src/balinusa/midsuit/form/WInvoiceLandedCost.java index 3f12501..579871e 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/form/WInvoiceLandedCost.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/form/WInvoiceLandedCost.java @@ -11,7 +11,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * *****************************************************************************/ -package andromedia.midsuit.form; +package balinusa.midsuit.form; import java.util.ArrayList; import java.util.logging.Level; @@ -49,7 +49,7 @@ import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zul.North; -import andromedia.midsuit.grid.InvoiceLandedCost; +import balinusa.midsuit.grid.InvoiceLandedCost; /** * Generate Shipment (manual) view class diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/grid/InvoiceLandedCost.java b/balinusa.midsuit.project/src/balinusa/midsuit/grid/InvoiceLandedCost.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/grid/InvoiceLandedCost.java rename to balinusa.midsuit.project/src/balinusa/midsuit/grid/InvoiceLandedCost.java index bf0fd59..fa8177b 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/grid/InvoiceLandedCost.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/grid/InvoiceLandedCost.java @@ -11,7 +11,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * *****************************************************************************/ -package andromedia.midsuit.grid; +package balinusa.midsuit.grid; import java.math.BigDecimal; import java.sql.PreparedStatement; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/AND_PPO.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/AND_PPO.java similarity index 94% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/AND_PPO.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/AND_PPO.java index 900e92f..ebd5780 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/AND_PPO.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/AND_PPO.java @@ -1,167 +1,167 @@ -package andromedia.midsuit.model; - -import java.io.File; -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.util.Properties; - -import org.compiere.process.DocAction; -import org.compiere.process.DocOptions; -import org.compiere.process.DocumentEngine; - -public class AND_PPO extends X_ps_ppo implements DocAction, DocOptions{ - - /** - * - */ - private static final long serialVersionUID = 4798412851170213351L; - - public AND_PPO(Properties ctx, int ps_ppo_ID, String trxName) { - super(ctx, ps_ppo_ID, trxName); - // TODO Auto-generated constructor stub - } - - public AND_PPO(Properties ctx, ResultSet rs, String trxName) { - super(ctx, rs, trxName); - // TODO Auto-generated constructor stub - } - - @Override - public int customizeValidActions(String docStatus, Object processing, String orderType, String isSOTrx, - int AD_Table_ID, String[] docAction, String[] options, int index) { - for (int i = 0; i < options.length; i++) { - options[i] = null; - } - index = 0; - if (docStatus.equals(DocumentEngine.STATUS_Drafted) || docStatus.equals(DocumentEngine.STATUS_Invalid)) { - options[index++] = DocumentEngine.ACTION_Complete; - options[index++] = DocumentEngine.ACTION_Prepare; - options[index++] = DocumentEngine.ACTION_Void; - } else if (docStatus.equals(DocumentEngine.STATUS_Completed)) { - options[index++] = DocumentEngine.ACTION_Close; - options[index++] = DocumentEngine.ACTION_ReActivate; - } else if (docStatus.equals(DocumentEngine.STATUS_InProgress)) - options[index++] = DocumentEngine.ACTION_Complete; - - return index; - } - - @Override - public boolean processIt(String action) throws Exception { - log.warning("Processing Action=" + action + " - DocStatus=" + getDocStatus() + " - DocAction=" + getDocAction()); - DocumentEngine engine = new DocumentEngine(this, getDocStatus()); - return engine.processIt(getDocAction(), getDocAction()); - } - - @Override - public boolean unlockIt() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean invalidateIt() { - // TODO Auto-generated method stub - return false; - } - - @Override - public String prepareIt() { - // TODO Auto-generated method stub - return null; - } - - @Override - public boolean approveIt() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean rejectIt() { - // TODO Auto-generated method stub - return false; - } - - @Override - public String completeIt() { - // TODO Auto-generated method stub - return null; - } - - @Override - public boolean voidIt() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean closeIt() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean reverseCorrectIt() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean reverseAccrualIt() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean reActivateIt() { - // TODO Auto-generated method stub - setDocStatus(DocAction.STATUS_InProgress); - return true; - } - - @Override - public String getSummary() { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getDocumentInfo() { - // TODO Auto-generated method stub - return null; - } - - @Override - public File createPDF() { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getProcessMsg() { - // TODO Auto-generated method stub - return null; - } - - @Override - public int getDoc_User_ID() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public int getC_Currency_ID() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public BigDecimal getApprovalAmt() { - // TODO Auto-generated method stub - return null; - } - - - -} +package balinusa.midsuit.model; + +import java.io.File; +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.util.Properties; + +import org.compiere.process.DocAction; +import org.compiere.process.DocOptions; +import org.compiere.process.DocumentEngine; + +public class AND_PPO extends X_ps_ppo implements DocAction, DocOptions{ + + /** + * + */ + private static final long serialVersionUID = 4798412851170213351L; + + public AND_PPO(Properties ctx, int ps_ppo_ID, String trxName) { + super(ctx, ps_ppo_ID, trxName); + // TODO Auto-generated constructor stub + } + + public AND_PPO(Properties ctx, ResultSet rs, String trxName) { + super(ctx, rs, trxName); + // TODO Auto-generated constructor stub + } + + @Override + public int customizeValidActions(String docStatus, Object processing, String orderType, String isSOTrx, + int AD_Table_ID, String[] docAction, String[] options, int index) { + for (int i = 0; i < options.length; i++) { + options[i] = null; + } + index = 0; + if (docStatus.equals(DocumentEngine.STATUS_Drafted) || docStatus.equals(DocumentEngine.STATUS_Invalid)) { + options[index++] = DocumentEngine.ACTION_Complete; + options[index++] = DocumentEngine.ACTION_Prepare; + options[index++] = DocumentEngine.ACTION_Void; + } else if (docStatus.equals(DocumentEngine.STATUS_Completed)) { + options[index++] = DocumentEngine.ACTION_Close; + options[index++] = DocumentEngine.ACTION_ReActivate; + } else if (docStatus.equals(DocumentEngine.STATUS_InProgress)) + options[index++] = DocumentEngine.ACTION_Complete; + + return index; + } + + @Override + public boolean processIt(String action) throws Exception { + log.warning("Processing Action=" + action + " - DocStatus=" + getDocStatus() + " - DocAction=" + getDocAction()); + DocumentEngine engine = new DocumentEngine(this, getDocStatus()); + return engine.processIt(getDocAction(), getDocAction()); + } + + @Override + public boolean unlockIt() { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean invalidateIt() { + // TODO Auto-generated method stub + return false; + } + + @Override + public String prepareIt() { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean approveIt() { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean rejectIt() { + // TODO Auto-generated method stub + return false; + } + + @Override + public String completeIt() { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean voidIt() { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean closeIt() { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean reverseCorrectIt() { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean reverseAccrualIt() { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean reActivateIt() { + // TODO Auto-generated method stub + setDocStatus(DocAction.STATUS_InProgress); + return true; + } + + @Override + public String getSummary() { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getDocumentInfo() { + // TODO Auto-generated method stub + return null; + } + + @Override + public File createPDF() { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getProcessMsg() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getDoc_User_ID() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int getC_Currency_ID() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public BigDecimal getApprovalAmt() { + // TODO Auto-generated method stub + return null; + } + + + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_C_BillingList.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_C_BillingList.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_C_BillingList.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_C_BillingList.java index 274bdf5..dcb4a0d 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_C_BillingList.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_C_BillingList.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_C_BillingListLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_C_BillingListLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_C_BillingListLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_C_BillingListLine.java index 540452d..3627603 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_C_BillingListLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_C_BillingListLine.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_C_OrderLineMA.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_C_OrderLineMA.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_C_OrderLineMA.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_C_OrderLineMA.java index 0448b80..95482e4 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_C_OrderLineMA.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_C_OrderLineMA.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_DD_Order.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_DD_Order.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_DD_Order.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_DD_Order.java index c5d2c60..1fff6da 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_DD_Order.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_DD_Order.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_DD_OrderLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_DD_OrderLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_DD_OrderLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_DD_OrderLine.java index c40905e..7127dfa 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_DD_OrderLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_DD_OrderLine.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_AJUDocumentType.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_AJUDocumentType.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_AJUDocumentType.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_AJUDocumentType.java index f686af3..e6d960b 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_AJUDocumentType.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_AJUDocumentType.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_Analysis.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_Analysis.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_Analysis.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_Analysis.java index dc5b87b..691da59 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_Analysis.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_Analysis.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_AnalysisLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_AnalysisLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_AnalysisLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_AnalysisLine.java index 95b7773..9afbb7e 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_AnalysisLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_AnalysisLine.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_AnalysisPro.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_AnalysisPro.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_AnalysisPro.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_AnalysisPro.java index 480ec48..428c71a 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_AnalysisPro.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_AnalysisPro.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_Parameter.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_Parameter.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_Parameter.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_Parameter.java index 054ec53..298df0d 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_Parameter.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_Parameter.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_Requisition.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_Requisition.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_Requisition.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_Requisition.java index d1adeb1..e50b219 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_Requisition.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_Requisition.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_RequisitionLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_RequisitionLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_RequisitionLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_RequisitionLine.java index b2da855..02ee7c5 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_RequisitionLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_RequisitionLine.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UnrealizedRate.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UnrealizedRate.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UnrealizedRate.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UnrealizedRate.java index 8a4df84..4bafaf5 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UnrealizedRate.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UnrealizedRate.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UnrealizedRateLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UnrealizedRateLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UnrealizedRateLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UnrealizedRateLine.java index 4fe839f..a20acc2 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UnrealizedRateLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UnrealizedRateLine.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadPEB.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadPEB.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadPEB.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadPEB.java index be9b11c..369057e 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadPEB.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadPEB.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadPEBLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadPEBLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadPEBLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadPEBLine.java index d9cbdca..21bb15f 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadPEBLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadPEBLine.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPB.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPB.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPB.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPB.java index 38c533b..71a0bc2 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPB.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPB.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPBLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPBLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPBLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPBLine.java index 312efc8..b1d7a3d 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPBLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPBLine.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPBLineDet.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPBLineDet.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPBLineDet.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPBLineDet.java index d8e6929..bb1e214 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPBLineDet.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_MID_UploadTPBLineDet.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_PaymentMethod.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_PaymentMethod.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_PaymentMethod.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_PaymentMethod.java index 8ce6ca9..8879b3b 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_PaymentMethod.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_PaymentMethod.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_Production.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_Production.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_Production.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_Production.java index 65145fd..172c804 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_Production.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_Production.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_ProductionConfirm.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_ProductionConfirm.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_ProductionConfirm.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_ProductionConfirm.java index 681eb1f..698d817 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_ProductionConfirm.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_ProductionConfirm.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_RMAMA.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_RMAMA.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_RMAMA.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_RMAMA.java index 8d7ebd4..5beb3e4 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_RMAMA.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_RMAMA.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_RequisitionTax.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_RequisitionTax.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_RequisitionTax.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_RequisitionTax.java index 6cda53e..e12d246 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_RequisitionTax.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_RequisitionTax.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_Warehouse.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_Warehouse.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_Warehouse.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_Warehouse.java index 6e4983e..6b98c01 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_M_Warehouse.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_M_Warehouse.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_Persistent.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_Persistent.java similarity index 64% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_Persistent.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_Persistent.java index dbacba9..36ae2ff 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_Persistent.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_Persistent.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; public interface I_Persistent { diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_T_Aging.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_T_Aging.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_T_Aging.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_T_Aging.java index 6ff50ff..35cd147 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_T_Aging.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_T_Aging.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_entitas.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_entitas.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_entitas.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_entitas.java index 7b4070e..7e3b063 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_entitas.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_entitas.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_order.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_order.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_order.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_order.java index 30eb3aa..1172f06 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_order.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_order.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_orderline.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_orderline.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_orderline.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_orderline.java index 1cf3e03..b65f068 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_orderline.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_orderline.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_upload.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_upload.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_upload.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_upload.java index 90bcef2..f7da130 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_upload.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_mid_ceisa_upload.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_ps_ppo.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_ps_ppo.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_ps_ppo.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_ps_ppo.java index 3fa67f3..538b216 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_ps_ppo.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_ps_ppo.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_ps_ppoline.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_ps_ppoline.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_ps_ppoline.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_ps_ppoline.java index 65ba11d..e0043b1 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_ps_ppoline.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_ps_ppoline.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_zpos_Cashier.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_zpos_Cashier.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/I_zpos_Cashier.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/I_zpos_Cashier.java index 49f2770..214e9b6 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/I_zpos_Cashier.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/I_zpos_Cashier.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_Aging.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_Aging.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_Aging.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_Aging.java index 219fa69..b47a93e 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_Aging.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_Aging.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_Analysis.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_Analysis.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_Analysis.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_Analysis.java index 0f49518..37c98f4 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_Analysis.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_Analysis.java @@ -1,229 +1,229 @@ -package andromedia.midsuit.model; - -import java.io.File; -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.util.List; -import java.util.Properties; - -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.MInOutConfirm; -import org.compiere.model.MInOutLine; -import org.compiere.model.MProduction; -import org.compiere.model.MProductionLine; -import org.compiere.model.Query; -import org.compiere.process.DocAction; -import org.compiere.process.DocumentEngine; -import org.compiere.util.DB; - -public class MID_Analysis extends X_MID_Analysis implements DocAction { - - /** - * - */ - private static final long serialVersionUID = 1L; - - public MID_Analysis(Properties ctx, int MID_Analysis_ID, String trxName) { - super(ctx, MID_Analysis_ID, trxName); - // TODO Auto-generated constructor stub - } - - public MID_Analysis(Properties ctx, ResultSet rs, String trxName) { - super(ctx, rs, trxName); - // TODO Auto-generated constructor stub - } - - protected boolean afterSave(boolean newRecord, boolean success) { - // TODO Auto-generated method stub - if (newRecord) { - if (getM_Production_ID() > 0) - createLineFromProduction(); - else if (getM_InOut_ID() > 0) - createLineFromShipment(); - else if (get_Value("M_InOutReturn_ID") == null || (int) get_Value("M_InOutReturn_ID") > 0) - createLineFromReturn(); - // else if (get_Value("M_Inventory_ID")!=null) - // createLineFromInventory(); - } - return true; - } - - @Override - protected boolean beforeDelete() { - MInOutConfirm Confirm = new Query(getCtx(), MInOutConfirm.Table_Name, "PS_Analysis_ID =? AND DocStatus =?", get_TrxName()) - .setParameters(new Object[] { getMID_Analysis_ID(), DocAction.ACTION_Complete }) - .setOnlyActiveRecords(true) - .first(); - if(Confirm!=null) - throw new AdempiereException("QC sudah digunakan pada ship/receipt nomor "+Confirm.getDocumentNo()); - - int[] productIDs = new Query(getCtx(), MID_AnalysisPro.Table_Name, "PS_Analysis_ID =? ", get_TrxName()) - .getIDs(); - for(int productID : productIDs){ - String sql = "DELETE FROM PS_AnalysisLine WHERE PS_AnalysisPro_ID =?"; - DB.executeUpdateEx(sql, new Object[]{productID}, get_TrxName()); - } - - String sql = "DELETE FROM PS_AnalysisPro WHERE PS_Analysis_ID =?"; - DB.executeUpdateEx(sql, new Object[]{ getMID_Analysis_ID() }, get_TrxName()); - - return super.beforeDelete(); - } - - public void createLineFromProduction() { - - MProduction production = new MProduction(getCtx(), getM_Production_ID(), null); - - if(production != null) { - MID_AnalysisPro a = new MID_AnalysisPro(getCtx(), 0, get_TrxName()); - a.setMID_Analysis_ID(getMID_Analysis_ID()); - a.setM_Product_ID(production.getM_Product_ID()); - a.setQty(production.getProductionQty()); - a.setbatch_id(getProduct()); - a.saveEx(); - } - } - - public String getProduct() { - - String valueReturn = ""; - List productionLines = new Query(getCtx() - , MProductionLine.Table_Name - , "M_Production_ID = ? and isEndProduct='N'", get_TrxName()) - .setParameters(new Object[] {getM_Production_ID()}) - .list(); - - for(MProductionLine productionLine : productionLines) { - if(productionLine != null) { - String qtyUsed = productionLine.getQtyUsed().toString(); - valueReturn += qtyUsed == null ? "0;" : qtyUsed + ";"; - } - } - - return valueReturn; - } - - public void createLineFromShipment() { - List iols = new Query(getCtx(), MInOutLine.Table_Name, "M_InOut_ID = ?", get_TrxName()) - .setParameters(new Object[] {getM_InOut()}) - .list(); - - for(MInOutLine iol : iols){ - MID_AnalysisPro ap = new MID_AnalysisPro(getCtx(), 0, get_TrxName()); - ap.setMID_Analysis_ID(getMID_Analysis_ID()); - ap.setM_Product_ID(iol.getM_Product_ID()); - ap.setQty(iol.getQtyEntered()); - ap.saveEx(); - } - } - - public void createLineFromReturn() { - List iols = new Query(getCtx(), MInOutLine.Table_Name, "M_InOut_ID = ?", get_TrxName()) - .setParameters(new Object[] {getM_InOut()}) - .list(); - - for(MInOutLine iol : iols) { - MID_AnalysisPro ap = new MID_AnalysisPro(getCtx(), 0, get_TrxName()); - ap.setMID_Analysis_ID(getMID_Analysis_ID()); - ap.setM_Product_ID(iol.getM_Product_ID()); - ap.setQty(iol.getQtyEntered()); - ap.saveEx(); - } - } - - @Override - public boolean processIt(String action) throws Exception { - // TODO Auto-generated method stub - log.warning("Processing Action=" + action + " - DocStatus=" + getDocStatus() + " - DocAction=" + getDocAction()); - DocumentEngine engine = new DocumentEngine(this, getDocStatus()); - return engine.processIt(action, getDocAction()); - } - - @Override - public boolean unlockIt() { - return true; - } - - @Override - public boolean invalidateIt() { - return true; - } - - @Override - public String prepareIt() { - setC_DocType_ID(getC_DocTypeTarget_ID()); - return DocAction.STATUS_InProgress; - } - - @Override - public boolean approveIt() { - return true; - } - - @Override - public boolean rejectIt() { - return true; - } - - @Override - public String completeIt() { - - return DocAction.STATUS_Completed; - } - - @Override - public boolean voidIt() { - return true; - } - - @Override - public boolean closeIt() { - return true; - } - - @Override - public boolean reverseCorrectIt() { - return true; - } - - @Override - public boolean reverseAccrualIt() { - return true; - } - - @Override - public boolean reActivateIt() { - return true; - } - - @Override - public String getSummary() { - return null; - } - - @Override - public String getDocumentInfo() { - return null; - } - - @Override - public File createPDF() { - return null; - } - - @Override - public String getProcessMsg() { - return null; - } - - @Override - public int getDoc_User_ID() { - return 0; - } - - @Override - public BigDecimal getApprovalAmt() { - return BigDecimal.ONE; - } - -} +package balinusa.midsuit.model; + +import java.io.File; +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.util.List; +import java.util.Properties; + +import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MInOutConfirm; +import org.compiere.model.MInOutLine; +import org.compiere.model.MProduction; +import org.compiere.model.MProductionLine; +import org.compiere.model.Query; +import org.compiere.process.DocAction; +import org.compiere.process.DocumentEngine; +import org.compiere.util.DB; + +public class MID_Analysis extends X_MID_Analysis implements DocAction { + + /** + * + */ + private static final long serialVersionUID = 1L; + + public MID_Analysis(Properties ctx, int MID_Analysis_ID, String trxName) { + super(ctx, MID_Analysis_ID, trxName); + // TODO Auto-generated constructor stub + } + + public MID_Analysis(Properties ctx, ResultSet rs, String trxName) { + super(ctx, rs, trxName); + // TODO Auto-generated constructor stub + } + + protected boolean afterSave(boolean newRecord, boolean success) { + // TODO Auto-generated method stub + if (newRecord) { + if (getM_Production_ID() > 0) + createLineFromProduction(); + else if (getM_InOut_ID() > 0) + createLineFromShipment(); + else if (get_Value("M_InOutReturn_ID") == null || (int) get_Value("M_InOutReturn_ID") > 0) + createLineFromReturn(); + // else if (get_Value("M_Inventory_ID")!=null) + // createLineFromInventory(); + } + return true; + } + + @Override + protected boolean beforeDelete() { + MInOutConfirm Confirm = new Query(getCtx(), MInOutConfirm.Table_Name, "PS_Analysis_ID =? AND DocStatus =?", get_TrxName()) + .setParameters(new Object[] { getMID_Analysis_ID(), DocAction.ACTION_Complete }) + .setOnlyActiveRecords(true) + .first(); + if(Confirm!=null) + throw new AdempiereException("QC sudah digunakan pada ship/receipt nomor "+Confirm.getDocumentNo()); + + int[] productIDs = new Query(getCtx(), MID_AnalysisPro.Table_Name, "PS_Analysis_ID =? ", get_TrxName()) + .getIDs(); + for(int productID : productIDs){ + String sql = "DELETE FROM PS_AnalysisLine WHERE PS_AnalysisPro_ID =?"; + DB.executeUpdateEx(sql, new Object[]{productID}, get_TrxName()); + } + + String sql = "DELETE FROM PS_AnalysisPro WHERE PS_Analysis_ID =?"; + DB.executeUpdateEx(sql, new Object[]{ getMID_Analysis_ID() }, get_TrxName()); + + return super.beforeDelete(); + } + + public void createLineFromProduction() { + + MProduction production = new MProduction(getCtx(), getM_Production_ID(), null); + + if(production != null) { + MID_AnalysisPro a = new MID_AnalysisPro(getCtx(), 0, get_TrxName()); + a.setMID_Analysis_ID(getMID_Analysis_ID()); + a.setM_Product_ID(production.getM_Product_ID()); + a.setQty(production.getProductionQty()); + a.setbatch_id(getProduct()); + a.saveEx(); + } + } + + public String getProduct() { + + String valueReturn = ""; + List productionLines = new Query(getCtx() + , MProductionLine.Table_Name + , "M_Production_ID = ? and isEndProduct='N'", get_TrxName()) + .setParameters(new Object[] {getM_Production_ID()}) + .list(); + + for(MProductionLine productionLine : productionLines) { + if(productionLine != null) { + String qtyUsed = productionLine.getQtyUsed().toString(); + valueReturn += qtyUsed == null ? "0;" : qtyUsed + ";"; + } + } + + return valueReturn; + } + + public void createLineFromShipment() { + List iols = new Query(getCtx(), MInOutLine.Table_Name, "M_InOut_ID = ?", get_TrxName()) + .setParameters(new Object[] {getM_InOut()}) + .list(); + + for(MInOutLine iol : iols){ + MID_AnalysisPro ap = new MID_AnalysisPro(getCtx(), 0, get_TrxName()); + ap.setMID_Analysis_ID(getMID_Analysis_ID()); + ap.setM_Product_ID(iol.getM_Product_ID()); + ap.setQty(iol.getQtyEntered()); + ap.saveEx(); + } + } + + public void createLineFromReturn() { + List iols = new Query(getCtx(), MInOutLine.Table_Name, "M_InOut_ID = ?", get_TrxName()) + .setParameters(new Object[] {getM_InOut()}) + .list(); + + for(MInOutLine iol : iols) { + MID_AnalysisPro ap = new MID_AnalysisPro(getCtx(), 0, get_TrxName()); + ap.setMID_Analysis_ID(getMID_Analysis_ID()); + ap.setM_Product_ID(iol.getM_Product_ID()); + ap.setQty(iol.getQtyEntered()); + ap.saveEx(); + } + } + + @Override + public boolean processIt(String action) throws Exception { + // TODO Auto-generated method stub + log.warning("Processing Action=" + action + " - DocStatus=" + getDocStatus() + " - DocAction=" + getDocAction()); + DocumentEngine engine = new DocumentEngine(this, getDocStatus()); + return engine.processIt(action, getDocAction()); + } + + @Override + public boolean unlockIt() { + return true; + } + + @Override + public boolean invalidateIt() { + return true; + } + + @Override + public String prepareIt() { + setC_DocType_ID(getC_DocTypeTarget_ID()); + return DocAction.STATUS_InProgress; + } + + @Override + public boolean approveIt() { + return true; + } + + @Override + public boolean rejectIt() { + return true; + } + + @Override + public String completeIt() { + + return DocAction.STATUS_Completed; + } + + @Override + public boolean voidIt() { + return true; + } + + @Override + public boolean closeIt() { + return true; + } + + @Override + public boolean reverseCorrectIt() { + return true; + } + + @Override + public boolean reverseAccrualIt() { + return true; + } + + @Override + public boolean reActivateIt() { + return true; + } + + @Override + public String getSummary() { + return null; + } + + @Override + public String getDocumentInfo() { + return null; + } + + @Override + public File createPDF() { + return null; + } + + @Override + public String getProcessMsg() { + return null; + } + + @Override + public int getDoc_User_ID() { + return 0; + } + + @Override + public BigDecimal getApprovalAmt() { + return BigDecimal.ONE; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_AnalysisLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_AnalysisLine.java similarity index 90% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_AnalysisLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_AnalysisLine.java index ec7ece6..09b677b 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_AnalysisLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_AnalysisLine.java @@ -1,23 +1,23 @@ -package andromedia.midsuit.model; - -import java.sql.ResultSet; -import java.util.Properties; - -public class MID_AnalysisLine extends X_MID_AnalysisLine { - - /** - * - */ - private static final long serialVersionUID = -8735159026713259241L; - - public MID_AnalysisLine(Properties ctx, int MID_AnalysisLine_ID, String trxName) { - super(ctx, MID_AnalysisLine_ID, trxName); - // TODO Auto-generated constructor stub - } - - public MID_AnalysisLine(Properties ctx, ResultSet rs, String trxName) { - super(ctx, rs, trxName); - // TODO Auto-generated constructor stub - } - -} +package balinusa.midsuit.model; + +import java.sql.ResultSet; +import java.util.Properties; + +public class MID_AnalysisLine extends X_MID_AnalysisLine { + + /** + * + */ + private static final long serialVersionUID = -8735159026713259241L; + + public MID_AnalysisLine(Properties ctx, int MID_AnalysisLine_ID, String trxName) { + super(ctx, MID_AnalysisLine_ID, trxName); + // TODO Auto-generated constructor stub + } + + public MID_AnalysisLine(Properties ctx, ResultSet rs, String trxName) { + super(ctx, rs, trxName); + // TODO Auto-generated constructor stub + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_AnalysisPro.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_AnalysisPro.java similarity index 93% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_AnalysisPro.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_AnalysisPro.java index 0e73ae2..2db1e79 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_AnalysisPro.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_AnalysisPro.java @@ -1,48 +1,48 @@ -package andromedia.midsuit.model; - -import java.sql.ResultSet; -import java.util.List; -import java.util.Properties; - -import org.compiere.model.Query; - -public class MID_AnalysisPro extends X_MID_AnalysisPro { - - /** - * - */ - private static final long serialVersionUID = -5451587381155760865L; - - public MID_AnalysisPro(Properties ctx, int MID_AnalysisPro_ID, String trxName) { - super(ctx, MID_AnalysisPro_ID, trxName); - // TODO Auto-generated constructor stub - } - - public MID_AnalysisPro(Properties ctx, ResultSet rs, String trxName) { - super(ctx, rs, trxName); - // TODO Auto-generated constructor stub - } - - protected boolean afterSave(boolean newRecord, boolean success) { - if (newRecord) { - createParameter(); - } - return true; - } - - public void createParameter() { - - List params = new Query(getCtx(), MID_Parameter.Table_Name, "M_Product_ID = ?", get_TrxName()) - .setParameters(new Object[] {getM_Product_ID()}) - .list(); - for(MID_Parameter param : params) { - MID_AnalysisLine al = new MID_AnalysisLine(getCtx(),0,get_TrxName()); - al.setName(param.getName()); - al.setParameter_Standard(param.getParameter_Standard()); - al.setMID_Parameter_ID(param.getMID_Parameter_ID()); - al.setMID_AnalysisPro_ID(getMID_AnalysisPro_ID()); - al.saveEx(); - } - } - -} +package balinusa.midsuit.model; + +import java.sql.ResultSet; +import java.util.List; +import java.util.Properties; + +import org.compiere.model.Query; + +public class MID_AnalysisPro extends X_MID_AnalysisPro { + + /** + * + */ + private static final long serialVersionUID = -5451587381155760865L; + + public MID_AnalysisPro(Properties ctx, int MID_AnalysisPro_ID, String trxName) { + super(ctx, MID_AnalysisPro_ID, trxName); + // TODO Auto-generated constructor stub + } + + public MID_AnalysisPro(Properties ctx, ResultSet rs, String trxName) { + super(ctx, rs, trxName); + // TODO Auto-generated constructor stub + } + + protected boolean afterSave(boolean newRecord, boolean success) { + if (newRecord) { + createParameter(); + } + return true; + } + + public void createParameter() { + + List params = new Query(getCtx(), MID_Parameter.Table_Name, "M_Product_ID = ?", get_TrxName()) + .setParameters(new Object[] {getM_Product_ID()}) + .list(); + for(MID_Parameter param : params) { + MID_AnalysisLine al = new MID_AnalysisLine(getCtx(),0,get_TrxName()); + al.setName(param.getName()); + al.setParameter_Standard(param.getParameter_Standard()); + al.setMID_Parameter_ID(param.getMID_Parameter_ID()); + al.setMID_AnalysisPro_ID(getMID_AnalysisPro_ID()); + al.saveEx(); + } + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_Ceisa_Order.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_Ceisa_Order.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_Ceisa_Order.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_Ceisa_Order.java index 42e0822..695eebc 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_Ceisa_Order.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_Ceisa_Order.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MAssetAddition.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MAssetAddition.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MAssetAddition.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MAssetAddition.java index 89dda4f..332ccc0 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MAssetAddition.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MAssetAddition.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.List; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MAssetDisposed.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MAssetDisposed.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MAssetDisposed.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MAssetDisposed.java index 7d8f194..dda6e6d 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MAssetDisposed.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MAssetDisposed.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.io.File; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MBillingList.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MBillingList.java similarity index 93% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MBillingList.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MBillingList.java index a302500..04c3a22 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MBillingList.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MBillingList.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MBillingListLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MBillingListLine.java similarity index 94% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MBillingListLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MBillingListLine.java index 3aaa0fc..98a8445 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MBillingListLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MBillingListLine.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MDDOrder.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MDDOrder.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MDDOrder.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MDDOrder.java index 810d2ab..d7e2d86 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MDDOrder.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MDDOrder.java @@ -1,1281 +1,1281 @@ -/****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * - * Copyright (C) 1999-2006 Adempiere, Inc. All Rights Reserved. * - * This program is free software; you can redistribute it and/or modify it * - * under the terms version 2 of the GNU General Public License as published * - * by the Free Software Foundation. This program is distributed in the hope * - * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * - * See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along * - * with this program; if not, write to the Free Software Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * - * Copyright (C) 2003-2007 e-Evolution,SC. All Rights Reserved. * - * Contributor(s): Victor Perez www.e-evolution.com * - *****************************************************************************/ - -package andromedia.midsuit.model; - -import java.io.File; -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import org.adempiere.exceptions.AdempiereException; -import org.adempiere.exceptions.NegativeInventoryDisallowedException; -import org.compiere.model.MBPartner; -import org.compiere.model.MBPartnerLocation; -import org.compiere.model.MDocType; -import org.compiere.model.MLocator; -import org.compiere.model.MMovement; -import org.compiere.model.MPeriod; -import org.compiere.model.MProduct; -import org.compiere.model.MProject; -import org.compiere.model.MRefList; -import org.compiere.model.MStorageOnHand; -import org.compiere.model.MUser; -import org.compiere.model.ModelValidationEngine; -import org.compiere.model.ModelValidator; -import org.compiere.model.PO; -import org.compiere.model.Query; -import org.compiere.model.X_M_InOut; -import org.compiere.print.ReportEngine; -import org.compiere.process.DocAction; -import org.compiere.process.DocumentEngine; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.compiere.util.Msg; -import org.compiere.util.Util; - -/** - * Order Distribution Model. - * Please do not set DocStatus and C_DocType_ID directly. - * They are set in the process() method. - * Use DocAction and C_DocTypeTarget_ID instead. - * - * @author victor.perez@e-evolution.com, e-Evolution http://www.e-evolution.com - *
  • Original contributor of Distribution Functionality - *
  • FR [ 2520591 ] Support multiples calendar for Org - * @see http://sourceforge.net/tracker2/?func=detail&atid=879335&aid=2520591&group_id=176962 - */ -public class MID_MDDOrder extends X_DD_Order implements DocAction -{ - /** - * - */ - private static final long serialVersionUID = -5997157712614274458L; - - /** - * Create new Order by copying - * @param from order - * @param dateDoc date of the document date - * @param C_DocTypeTarget_ID target document type - * @param isSOTrx sales order - * @param counter create counter links - * @param copyASI copy line attributes Attribute Set Instance, Resaouce Assignment - * @param trxName trx - * @return Distribution Order - */ - public static MID_MDDOrder copyFrom (MID_MDDOrder from, Timestamp dateDoc, - int C_DocTypeTarget_ID, boolean isSOTrx, boolean counter, boolean copyASI, - String trxName) - { - MID_MDDOrder to = new MID_MDDOrder (from.getCtx(), 0, trxName); - to.set_TrxName(trxName); - PO.copyValues(from, to, from.getAD_Client_ID(), from.getAD_Org_ID()); - to.set_ValueNoCheck ("DD_Order_ID", I_ZERO); - to.set_ValueNoCheck ("DocumentNo", null); - // - to.setDocStatus (DOCSTATUS_Drafted); // Draft - to.setDocAction(DOCACTION_Complete); - // - to.setC_DocType_ID(0); - to.setIsSOTrx(isSOTrx); - // - to.setIsSelected (false); - to.setDateOrdered (dateDoc); - to.setDatePromised (dateDoc); // assumption - to.setDatePrinted(null); - to.setIsPrinted (false); - // - to.setIsApproved (false); - // - to.setIsDelivered(false); - to.setProcessed (false); - if (counter) - to.setRef_Order_ID(from.getDD_Order_ID()); - else - to.setRef_Order_ID(0); - // - if (!to.save(trxName)) - throw new IllegalStateException("Could not create Order"); - if (counter) - from.setRef_Order_ID(to.getDD_Order_ID()); - - if (to.copyLinesFrom(from, counter, copyASI) == 0) - throw new IllegalStateException("Could not create Order Lines"); - - return to; - } // copyFrom - - - /************************************************************************** - * Default Constructor - * @param ctx context - * @param DD_Order_ID order to load, (0 create new order) - * @param trxName trx name - */ - public MID_MDDOrder(Properties ctx, int DD_Order_ID, String trxName) - { - super (ctx, DD_Order_ID, trxName); - // New - if (DD_Order_ID == 0) - { - setDocStatus(DOCSTATUS_Drafted); - setDocAction (DOCACTION_Prepare); - // - setDeliveryRule (DELIVERYRULE_Availability); - setFreightCostRule (FREIGHTCOSTRULE_FreightIncluded); - setPriorityRule (PRIORITYRULE_Medium); - setDeliveryViaRule (DELIVERYVIARULE_Pickup); - // - setIsSelected (false); - setIsSOTrx (true); - setIsDropShip(false); - setSendEMail (false); - // - setIsApproved(false); - setIsPrinted(false); - setIsDelivered(false); - // - super.setProcessed(false); - setProcessing(false); - - setDatePromised (new Timestamp(System.currentTimeMillis())); - setDateOrdered (new Timestamp(System.currentTimeMillis())); - - setFreightAmt (Env.ZERO); - setChargeAmt (Env.ZERO); - - } - } // MDDOrder - - /************************************************************************** - * Project Constructor - * @param project Project to create Order from - * @param IsSOTrx sales order - * @param DocSubTypeSO if SO DocType Target (default DocSubTypeSO_OnCredit) - */ - public MID_MDDOrder (MProject project, boolean IsSOTrx, String DocSubTypeSO) - { - this (project.getCtx(), 0, project.get_TrxName()); - setAD_Client_ID(project.getAD_Client_ID()); - setAD_Org_ID(project.getAD_Org_ID()); - setC_Campaign_ID(project.getC_Campaign_ID()); - setSalesRep_ID(project.getSalesRep_ID()); - // - setC_Project_ID(project.getC_Project_ID()); - setDescription(project.getName()); - Timestamp ts = project.getDateContract(); - if (ts != null) - setDateOrdered (ts); - ts = project.getDateFinish(); - if (ts != null) - setDatePromised (ts); - // - setC_BPartner_ID(project.getC_BPartner_ID()); - setC_BPartner_Location_ID(project.getC_BPartner_Location_ID()); - setAD_User_ID(project.getAD_User_ID()); - // - setM_Warehouse_ID(project.getM_Warehouse_ID()); - // - setIsSOTrx(IsSOTrx); - } // MDDOrder - - /** - * Load Constructor - * @param ctx context - * @param rs result set record - * @param trxName transaction - */ - public MID_MDDOrder (Properties ctx, ResultSet rs, String trxName) - { - super(ctx, rs, trxName); - } // MDDOrder - - /** Order Lines */ - private MID_MDDOrderLine[] m_lines = null; - - /** Force Creation of order */ - @SuppressWarnings("unused") - private boolean m_forceCreation = false; - - /** - * Add to Description - * @param description text - */ - public void addDescription (String description) - { - String desc = getDescription(); - if (desc == null) - setDescription(description); - else - setDescription(desc + " | " + description); - } // addDescription - - /** - * Set Ship Business Partner - * @param C_BPartner_ID bpartner - */ - public void setShip_BPartner_ID (int C_BPartner_ID) - { - super.setC_BPartner_ID (C_BPartner_ID); - } // setShip_BPartner_ID - - /** - * Set Ship Business Partner Location - * @param C_BPartner_Location_ID bp location - */ - public void setShip_Location_ID (int C_BPartner_Location_ID) - { - super.setC_BPartner_Location_ID (C_BPartner_Location_ID); - } // setShip_Location_ID - - /** - * Set Ship Business Partner Contact - * @param AD_User_ID user - */ - public void setShip_User_ID (int AD_User_ID) - { - super.setAD_User_ID (AD_User_ID); - } // setShip_User_ID - - /** - * Set Business Partner Defaults & Details. - * SOTrx should be set. - * @param bp business partner - */ - public void setBPartner (MBPartner bp) - { - if (bp == null) - return; - - setC_BPartner_ID(bp.getC_BPartner_ID()); - // Defaults Payment Term - int ii = 0; - if (isSOTrx()) - ii = bp.getC_PaymentTerm_ID(); - else - ii = bp.getPO_PaymentTerm_ID(); - - // Default Price List - if (isSOTrx()) - ii = bp.getM_PriceList_ID(); - else - ii = bp.getPO_PriceList_ID(); - // Default Delivery/Via Rule - String ss = bp.getDeliveryRule(); - if (ss != null) - setDeliveryRule(ss); - ss = bp.getDeliveryViaRule(); - if (ss != null) - setDeliveryViaRule(ss); - // Default Invoice/Payment Rule - ss = bp.getInvoiceRule(); - - if (getSalesRep_ID() == 0) - { - ii = Env.getAD_User_ID(getCtx()); - if (ii != 0) - setSalesRep_ID (ii); - } - - // Set Locations - MBPartnerLocation[] locs = bp.getLocations(false); - if (locs != null) - { - for (int i = 0; i < locs.length; i++) - { - if (locs[i].isShipTo()) - { - super.setC_BPartner_Location_ID(locs[i].getC_BPartner_Location_ID()); - } - } - // set to first - if (getC_BPartner_Location_ID() == 0 && locs.length > 0) - { - super.setC_BPartner_Location_ID(locs[0].getC_BPartner_Location_ID()); - } - } - if (getC_BPartner_Location_ID() == 0) - { - log.log(Level.SEVERE, "MDDOrder.setBPartner - Has no Ship To Address: " + bp); - } - - // Set Contact - MUser[] contacts = bp.getContacts(false); - if (contacts != null && contacts.length == 1) - { - setAD_User_ID(contacts[0].getAD_User_ID()); - } - } // setBPartner - - - /** - * Copy Lines From other Order - * @param otherOrder order - * @param counter set counter info - * @param copyASI copy line attributes Attribute Set Instance, Resource Assignment - * @return number of lines copied - */ - public int copyLinesFrom (MID_MDDOrder otherOrder, boolean counter, boolean copyASI) - { - if (isProcessed() || otherOrder == null) - return 0; - MID_MDDOrderLine[] fromLines = otherOrder.getLines(false, null); - int count = 0; - for (int i = 0; i < fromLines.length; i++) - { - MID_MDDOrderLine line = new MID_MDDOrderLine (this); - PO.copyValues(fromLines[i], line, getAD_Client_ID(), getAD_Org_ID()); - line.setDD_Order_ID(getDD_Order_ID()); - line.setOrder(this); - // References - if (!copyASI) - { - line.setM_AttributeSetInstance_ID(0); - //line.setS_ResourceAssignment_ID(0); - } - - line.setQtyDelivered(Env.ZERO); - line.setQtyReserved(Env.ZERO); - line.setDateDelivered(null); - - line.setProcessed(false); - if (line.save(get_TrxName())) - count++; - } - if (fromLines.length != count) - log.log(Level.SEVERE, "Line difference - From=" + fromLines.length + " <> Saved=" + count); - return count; - } // copyLinesFrom - - - /************************************************************************** - * String Representation - * @return info - */ - public String toString () - { - StringBuffer sb = new StringBuffer ("MDDOrder[") - .append(get_ID()).append("-").append(getDocumentNo()) - .append(",IsSOTrx=").append(isSOTrx()) - .append(",C_DocType_ID=").append(getC_DocType_ID()) - .append ("]"); - return sb.toString (); - } // toString - - /** - * Get Document Info - * @return document info (untranslated) - */ - public String getDocumentInfo() - { - MDocType dt = MDocType.get(getCtx(), getC_DocType_ID()); - return dt.getNameTrl() + " " + getDocumentNo(); - } // getDocumentInfo - - /** - * Create PDF - * @return File or null - */ - public File createPDF () - { - try - { - File temp = File.createTempFile(get_TableName()+get_ID()+"_", ".pdf"); - return createPDF (temp); - } - catch (Exception e) - { - log.severe("Could not create PDF - " + e.getMessage()); - } - return null; - } // getPDF - - /** - * Create PDF file - * @param file output file - * @return file if success - */ - public File createPDF (File file) - { - ReportEngine re = ReportEngine.get (getCtx(), ReportEngine.DISTRIBUTION_ORDER, getDD_Order_ID()); - if (re == null) - return null; - return re.getPDF(file); - } // createPDF - - - - - /************************************************************************** - * Get Lines of Order - * @param whereClause where clause or null (starting with AND) - * @param orderClause order clause - * @return lines - */ - public MID_MDDOrderLine[] getLines (String whereClause, String orderClause) - { - StringBuffer whereClauseFinal = new StringBuffer(MID_MDDOrderLine.COLUMNNAME_DD_Order_ID).append("=?"); - if (!Util.isEmpty(whereClause, true)) - whereClauseFinal.append(" AND (").append(whereClause).append(")"); - // - List list = new Query(getCtx(), I_DD_OrderLine.Table_Name, whereClauseFinal.toString(), get_TrxName()) - .setParameters(getDD_Order_ID()) - .setOrderBy(orderClause) - .list(); - return list.toArray(new MID_MDDOrderLine[list.size()]); - } // getLines - - /** - * Get Lines of Order - * @param requery requery - * @param orderBy optional order by column - * @return lines - */ - public MID_MDDOrderLine[] getLines (boolean requery, String orderBy) - { - if (m_lines != null && !requery) { - set_TrxName(m_lines, get_TrxName()); - return m_lines; - } - // - String orderClause = ""; - if (orderBy != null && orderBy.length() > 0) - orderClause += orderBy; - else - orderClause += "Line"; - m_lines = getLines(null, orderClause); - return m_lines; - } // getLines - - /** - * Get Lines of Order. - * (useb by web store) - * @return lines - */ - public MID_MDDOrderLine[] getLines() - { - return getLines(false, null); - } // getLines - - /** - * Renumber Lines - * @param step start and step - */ - public void renumberLines (int step) - { - int number = step; - MID_MDDOrderLine[] lines = getLines(true, null); // Line is default - for (int i = 0; i < lines.length; i++) - { - MID_MDDOrderLine line = lines[i]; - line.setLine(number); - line.saveEx(get_TrxName()); - number += step; - } - m_lines = null; - } // renumberLines - - - - - /** - * Get Shipments of Order - * @return shipments - */ - public MMovement[] getMovement() - { - ArrayList list = new ArrayList(); - String sql = "SELECT DISTINCT io.* FROM M_MovementLine ml " + - "INNER JOIN M_Movement m ON (m.M_Movement_ID = ml.M_Movement_ID) " + - "INNER JOIN DD_ORDERLINE ol ON (ol.DD_ORDERLINE_ID=ml.DD_ORDERLINE_ID) " + - "INNER JOIN DD_ORDER o ON (o.DD_ORDER_ID=ol.DD_ORDER_ID) " + - "WHERE o.DD_ORDER_ID=? " + - "ORDER BY m.Created DESC"; - - PreparedStatement pstmt = null; - ResultSet rs = null; - try - { - pstmt = DB.prepareStatement(sql, get_TrxName()); - pstmt.setInt(1, getDD_Order_ID()); - rs = pstmt.executeQuery(); - while (rs.next()) - list.add(new MMovement(getCtx(), rs, get_TrxName())); - } - catch (Exception e) - { - log.log(Level.SEVERE, sql, e); - } - finally - { - DB.close(rs, pstmt); - rs = null; - pstmt = null; - } - // - MMovement[] retValue = new MMovement[list.size()]; - list.toArray(retValue); - return retValue; - } // getShipments - - - - /** - * Get Document Status - * @return Document Status Clear Text - */ - public String getDocStatusName() - { - return MRefList.getListName(getCtx(), 131, getDocStatus()); - } // getDocStatusName - - /** - * Set DocAction - * @param DocAction doc action - */ - public void setDocAction (String DocAction) - { - setDocAction (DocAction, false); - } // setDocAction - - /** - * Set Processed. - * Propergate to Lines/Taxes - * @param processed processed - */ - public void setProcessed (boolean processed) - { - super.setProcessed (processed); - if (get_ID() == 0) - return; - String set = "SET Processed='" - + (processed ? "Y" : "N") - + "' WHERE DD_Order_ID=" + getDD_Order_ID(); - int noLine = DB.executeUpdate("UPDATE DD_OrderLine " + set, get_TrxName()); - m_lines = null; - if (log.isLoggable(Level.FINE)) log.fine("setProcessed - " + processed + " - Lines=" + noLine); - } // setProcessed - - - - /************************************************************************** - * Before Save - * @param newRecord new - * @return save - */ - protected boolean beforeSave (boolean newRecord) - { - // Client/Org Check - if (getAD_Org_ID() == 0) - { - int context_AD_Org_ID = Env.getAD_Org_ID(getCtx()); - if (context_AD_Org_ID != 0) - { - setAD_Org_ID(context_AD_Org_ID); - log.warning("Changed Org to Context=" + context_AD_Org_ID); - } - } - if (getAD_Client_ID() == 0) - { - m_processMsg = "AD_Client_ID = 0"; - return false; - } - - // New Record Doc Type - make sure DocType set to 0 - if (newRecord && getC_DocType_ID() == 0) - setC_DocType_ID (0); - - // Default Warehouse - if (getM_Warehouse_ID() == 0) - { - int ii = Env.getContextAsInt(getCtx(), "#M_Warehouse_ID"); - if (ii != 0) - setM_Warehouse_ID(ii); - else - { - log.saveError("FillMandatory", Msg.getElement(getCtx(), "M_Warehouse_ID")); - return false; - } - } - // Reservations in Warehouse - if (!newRecord && is_ValueChanged("M_Warehouse_ID")) - { - MID_MDDOrderLine[] lines = getLines(false,null); - for (int i = 0; i < lines.length; i++) - { - if (!lines[i].canChangeWarehouse()) - return false; - } - } - - // No Partner Info - set Template - if (getC_BPartner_ID() == 0) - setBPartner(MBPartner.getTemplate(getCtx(), getAD_Client_ID())); - if (getC_BPartner_Location_ID() == 0) - setBPartner(new MBPartner(getCtx(), getC_BPartner_ID(), null)); - - - // Default Sales Rep - if (getSalesRep_ID() == 0) - { - int ii = Env.getContextAsInt(getCtx(), "#AD_User_ID"); - if (ii != 0) - setSalesRep_ID (ii); - } - - return true; - } // beforeSave - - - /** - * After Save - * @param newRecord new - * @param success success - * @return true if can be saved - */ - protected boolean afterSave (boolean newRecord, boolean success) - { - if (!success || newRecord) - return success; - // Propagate Description changes - if (is_ValueChanged("Description") || is_ValueChanged("POReference")) - { - String sql = "UPDATE M_Movement i" - + " SET (Description,POReference)=" - + "(SELECT Description,POReference " - + "FROM DD_Order o WHERE i.DD_Order_ID=o.DD_Order_ID) " - + "WHERE DocStatus NOT IN ('RE','CL') AND DD_Order_ID=" + getDD_Order_ID(); - int no = DB.executeUpdate(sql, get_TrxName()); - if (log.isLoggable(Level.FINE)) log.fine("Description -> #" + no); - } - - - // Sync Lines - afterSaveSync("AD_Org_ID"); - afterSaveSync("C_BPartner_ID"); - afterSaveSync("C_BPartner_Location_ID"); - afterSaveSync("DateOrdered"); - afterSaveSync("DatePromised"); - afterSaveSync("M_Shipper_ID"); - // - return true; - } // afterSave - - private void afterSaveSync (String columnName) - { - if (is_ValueChanged(columnName)) - { - final String whereClause = I_DD_Order.COLUMNNAME_DD_Order_ID + "=?"; - List lines = new Query (getCtx(), I_DD_OrderLine.Table_Name, whereClause, get_TrxName()) - .setParameters(getDD_Order_ID()) - .list(); - - for (MID_MDDOrderLine line : lines) - { - line.set_ValueOfColumn(columnName, get_Value(columnName)); - line.saveEx(); - if (log.isLoggable(Level.FINE)) log.fine(columnName + " Lines -> #" + get_Value(columnName)); - } - } - } // afterSaveSync - - /** - * Set DocAction - * @param DocAction doc oction - * @param forceCreation force creation - */ - public void setDocAction (String DocAction, boolean forceCreation) - { - super.setDocAction (DocAction); - m_forceCreation = forceCreation; - } // setDocAction - - - /** - * Before Delete - * @return true of it can be deleted - */ - protected boolean beforeDelete () - { - if (isProcessed()) - return false; - - getLines(); - for (int i = 0; i < m_lines.length; i++) - { - m_lines[i].delete(true); - } - return true; - } // beforeDelete - - /************************************************************************** - * Process document - * @param processAction document action - * @return true if performed - */ - public boolean processIt (String processAction) - { - m_processMsg = null; - DocumentEngine engine = new DocumentEngine (this, getDocStatus()); - return engine.processIt (processAction, getDocAction()); - } // processIt - - /** Process Message */ - private String m_processMsg = null; - /** Just Prepared Flag */ - private boolean m_justPrepared = false; - - /** - * Unlock Document. - * @return true if success - */ - public boolean unlockIt() - { - if (log.isLoggable(Level.INFO)) log.info("unlockIt - " + toString()); - setProcessing(false); - return true; - } // unlockIt - - /** - * Invalidate Document - * @return true if success - */ - public boolean invalidateIt() - { - if (log.isLoggable(Level.INFO)) log.info(toString()); - setDocAction(DOCACTION_Prepare); - return true; - } // invalidateIt - - - /************************************************************************** - * Prepare Document - * @return new status (In Progress or Invalid) - */ - public String prepareIt() - { - if (log.isLoggable(Level.INFO)) log.info(toString()); - m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_BEFORE_PREPARE); - if (m_processMsg != null) - return DocAction.STATUS_Invalid; - MDocType dt = MDocType.get(getCtx(), getC_DocType_ID()); - setDateOrdered((Timestamp) get_Value("DateDoc")); - // Std Period open? - if (!MPeriod.isOpen(getCtx(), getDateOrdered(), dt.getDocBaseType(), getAD_Org_ID())) - { - m_processMsg = "@PeriodClosed@"; - return DocAction.STATUS_Invalid; - } - - // Lines - MID_MDDOrderLine[] lines = getLines(true, "M_Product_ID"); - if (lines.length == 0) - { - m_processMsg = "@NoLines@"; - return DocAction.STATUS_Invalid; - } - - // Bug 1564431 - if (getDeliveryRule() != null && getDeliveryRule().equals(MID_MDDOrder.DELIVERYRULE_CompleteOrder)) - { - for (int i = 0; i < lines.length; i++) - { - MID_MDDOrderLine line = lines[i]; - MProduct product = line.getProduct(); - if (product != null && product.isExcludeAutoDelivery()) - { - m_processMsg = "@M_Product_ID@ "+product.getValue()+" @IsExcludeAutoDelivery@"; - return DocAction.STATUS_Invalid; - } - } - } - - - // Mandatory Product Attribute Set Instance - String mandatoryType = "='Y'"; // IN ('Y','S') - String sql = "SELECT COUNT(*) " - + "FROM DD_OrderLine ol" - + " INNER JOIN M_Product p ON (ol.M_Product_ID=p.M_Product_ID)" - + " INNER JOIN M_AttributeSet pas ON (p.M_AttributeSet_ID=pas.M_AttributeSet_ID) " - + "WHERE pas.MandatoryType" + mandatoryType - + " AND ol.M_AttributeSetInstance_ID IS NULL" - + " AND ol.DD_Order_ID=?"; - int no = DB.getSQLValue(get_TrxName(), sql, getDD_Order_ID()); - if (no != 0) - { - m_processMsg = "@LinesWithoutProductAttribute@ (" + no + ")"; - return DocAction.STATUS_Invalid; - } - - reserveStock(lines); - - m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_AFTER_PREPARE); - if (m_processMsg != null) - return DocAction.STATUS_Invalid; - - m_justPrepared = true; - return DocAction.STATUS_InProgress; - } // prepareIt - - - /** - * Reserve Inventory. - * Counterpart: MMovement.completeIt() - * @param lines distribution order lines (ordered by M_Product_ID for deadlock prevention) - * @return true if (un) reserved - */ - public void reserveStock (MID_MDDOrderLine[] lines) - { - BigDecimal Volume = Env.ZERO; - BigDecimal Weight = Env.ZERO; - - StringBuilder errors = new StringBuilder(); - // Always check and (un) Reserve Inventory - for (MID_MDDOrderLine line : lines) - { - MLocator locator_from = MLocator.get(getCtx(),line.getM_Locator_ID()); - MLocator locator_to = MLocator.get(getCtx(),line.getM_LocatorTo_ID()); - BigDecimal reserved_ordered = line.getQtyOrdered() - .subtract(line.getQtyReserved()) - .subtract(line.getQtyDelivered()); - if (reserved_ordered.signum() == 0) - { - MProduct product = line.getProduct(); - if (product != null) - { - Volume = Volume.add(product.getVolume().multiply(line.getQtyOrdered())); - Weight = Weight.add(product.getWeight().multiply(line.getQtyOrdered())); - } - continue; - } - - if (log.isLoggable(Level.FINE)) log.fine("Line=" + line.getLine() - + " - Ordered=" + line.getQtyOrdered() - + ",Reserved=" + line.getQtyReserved() + ",Delivered=" + line.getQtyDelivered()); - - // Check Product - Stocked and Item - MProduct product = line.getProduct(); - if (product != null) - { - try - { - if (product.isStocked()) - { - // Update Storage - if (!MStorageOnHand.add(getCtx(), locator_to.getM_Warehouse_ID(), locator_to.getM_Locator_ID(), - line.getM_Product_ID(), - line.getM_AttributeSetInstance_ID(), - Env.ZERO,null, get_TrxName())) - { - throw new AdempiereException(); - } - - if (!MStorageOnHand.add(getCtx(), locator_from.getM_Warehouse_ID(), locator_from.getM_Locator_ID(), - line.getM_Product_ID(), - line.getM_AttributeSetInstanceTo_ID(), - Env.ZERO,null, get_TrxName())) - { - throw new AdempiereException(); - } - - } // stockec - // update line - line.setQtyReserved(line.getQtyReserved().add(reserved_ordered)); - line.saveEx(); - // - Volume = Volume.add(product.getVolume().multiply(line.getQtyOrdered())); - Weight = Weight.add(product.getWeight().multiply(line.getQtyOrdered())); - } - catch (NegativeInventoryDisallowedException e) - { - log.severe(e.getMessage()); - errors.append(Msg.getElement(getCtx(), "Line")).append(" ").append(line.getLine()).append(": "); - errors.append(e.getMessage()).append("\n"); - } - } // product - } // reverse inventory - - if (errors.toString().length() > 0) - throw new AdempiereException(errors.toString()); - - setVolume(Volume); - setWeight(Weight); - } // reserveStock - - - /** - * Approve Document - * @return true if success - */ - public boolean approveIt() - { - if (log.isLoggable(Level.INFO)) log.info("approveIt - " + toString()); - setIsApproved(true); - return true; - } // approveIt - - /** - * Reject Approval - * @return true if success - */ - public boolean rejectIt() - { - if (log.isLoggable(Level.INFO)) log.info("rejectIt - " + toString()); - setIsApproved(false); - return true; - } // rejectIt - - - /************************************************************************** - * Complete Document - * @return new status (Complete, In Progress, Invalid, Waiting ..) - */ - public String completeIt() - { - @SuppressWarnings("unused") - MDocType dt = MDocType.get(getCtx(), getC_DocType_ID()); - - // Just prepare - if (DOCACTION_Prepare.equals(getDocAction())) - { - setProcessed(false); - return DocAction.STATUS_InProgress; - } - - // Re-Check - if (!m_justPrepared) - { - String status = prepareIt(); - m_justPrepared = false; - if (!DocAction.STATUS_InProgress.equals(status)) - return status; - } - - m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_BEFORE_COMPLETE); - if (m_processMsg != null) - return DocAction.STATUS_Invalid; - - // Implicit Approval - if (!isApproved()) - approveIt(); - getLines(true,null); - if (log.isLoggable(Level.INFO)) log.info(toString()); - StringBuilder info = new StringBuilder(); - String valid = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_AFTER_COMPLETE); - if (valid != null) - { - if (info.length() > 0) - info.append(" - "); - info.append(valid); - m_processMsg = info.toString(); - return DocAction.STATUS_Invalid; - } - - setProcessed(true); - m_processMsg = info.toString(); - // - setDocAction(DOCACTION_Close); - return DocAction.STATUS_Completed; - } // completeIt - - /** - * Void Document. - * Set Qtys to 0 - Sales: reverse all documents - * @return true if success - */ - public boolean voidIt() - { - if (log.isLoggable(Level.INFO)) log.info(toString()); - // Before Void - m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_BEFORE_VOID); - if (m_processMsg != null) - return false; - - MID_MDDOrderLine[] lines = getLines(true, "M_Product_ID"); - for (int i = 0; i < lines.length; i++) - { - MID_MDDOrderLine line = lines[i]; - BigDecimal old = line.getQtyOrdered(); - if (old.signum() != 0) - { - line.addDescription(Msg.getMsg(getCtx(), "Voided") + " (" + old + ")"); - line.saveEx(get_TrxName()); - } - } - addDescription(Msg.getMsg(getCtx(), "Voided")); - // Clear Reservations - reserveStock(lines); - // After Void - m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_AFTER_VOID); - if (m_processMsg != null) - return false; - - setProcessed(true); - setDocAction(DOCACTION_None); - return true; - } // voidIt - - /** - * Create Shipment/Invoice Reversals - * @return true if success - */ - /* - private boolean createReversals() - { - // Cancel only Sales - if (!isSOTrx()) - return true; - - if (log.isLoggable(Level.INFO)) log.info("createReversals"); - StringBuffer info = new StringBuffer(); - - // Reverse All *Shipments* - info.append("@M_InOut_ID@:"); - MInOut[] shipments = getShipments(); - for (int i = 0; i < shipments.length; i++) - { - MInOut ship = shipments[i]; - // if closed - ignore - if (MInOut.DOCSTATUS_Closed.equals(ship.getDocStatus()) - || MInOut.DOCSTATUS_Reversed.equals(ship.getDocStatus()) - || MInOut.DOCSTATUS_Voided.equals(ship.getDocStatus()) ) - continue; - ship.set_TrxName(get_TrxName()); - - // If not completed - void - otherwise reverse it - if (!MInOut.DOCSTATUS_Completed.equals(ship.getDocStatus())) - { - if (ship.voidIt()) - ship.setDocStatus(MInOut.DOCSTATUS_Voided); - } - else if (ship.reverseCorrectIt()) // completed shipment - { - ship.setDocStatus(MInOut.DOCSTATUS_Reversed); - info.append(" ").append(ship.getDocumentNo()); - } - else - { - m_processMsg = "Could not reverse Shipment " + ship; - return false; - } - ship.setDocAction(MInOut.DOCACTION_None); - ship.save(get_TrxName()); - } // for all shipments - - // Reverse All *Invoices* - info.append(" - @C_Invoice_ID@:"); - MInvoice[] invoices = getInvoices(); - for (int i = 0; i < invoices.length; i++) - { - MInvoice invoice = invoices[i]; - // if closed - ignore - if (MInvoice.DOCSTATUS_Closed.equals(invoice.getDocStatus()) - || MInvoice.DOCSTATUS_Reversed.equals(invoice.getDocStatus()) - || MInvoice.DOCSTATUS_Voided.equals(invoice.getDocStatus()) ) - continue; - invoice.set_TrxName(get_TrxName()); - - // If not completed - void - otherwise reverse it - if (!MInvoice.DOCSTATUS_Completed.equals(invoice.getDocStatus())) - { - if (invoice.voidIt()) - invoice.setDocStatus(MInvoice.DOCSTATUS_Voided); - } - else if (invoice.reverseCorrectIt()) // completed invoice - { - invoice.setDocStatus(MInvoice.DOCSTATUS_Reversed); - info.append(" ").append(invoice.getDocumentNo()); - } - else - { - m_processMsg = "Could not reverse Invoice " + invoice; - return false; - } - invoice.setDocAction(MInvoice.DOCACTION_None); - invoice.save(get_TrxName()); - } // for all shipments - - m_processMsg = info.toString(); - return true; - } // createReversals - */ - - /** - * Close Document. - * Cancel not delivered Qunatities - * @return true if success - */ - public boolean closeIt() - { - if (log.isLoggable(Level.INFO)) log.info(toString()); - // Before Close - m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_BEFORE_CLOSE); - if (m_processMsg != null) - return false; - - // Close Not delivered Qty - SO/PO - MID_MDDOrderLine[] lines = getLines(true, "M_Product_ID"); - for (int i = 0; i < lines.length; i++) - { - MID_MDDOrderLine line = lines[i]; - BigDecimal old = line.getQtyOrdered(); - if (old.compareTo(line.getQtyDelivered()) != 0) - { - line.setQtyOrdered(line.getQtyDelivered()); - // QtyEntered unchanged - line.addDescription("Close (" + old + ")"); - line.saveEx(get_TrxName()); - } - } - // Clear Reservations - reserveStock(lines); - - setProcessed(true); - setDocAction(DOCACTION_None); - // After Close - m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_AFTER_CLOSE); - if (m_processMsg != null) - return false; - return true; - } // closeIt - - /** - * Reverse Correction - same void - * @return true if success - */ - public boolean reverseCorrectIt() - { - if (log.isLoggable(Level.INFO)) log.info(toString()); - // Before reverseCorrect - m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_BEFORE_REVERSECORRECT); - if (m_processMsg != null) - return false; - - // After reverseCorrect - m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_AFTER_REVERSECORRECT); - if (m_processMsg != null) - return false; - - return voidIt(); - } // reverseCorrectionIt - - /** - * Reverse Accrual - none - * @return false - */ - public boolean reverseAccrualIt() - { - if (log.isLoggable(Level.INFO)) log.info(toString()); - // Before reverseAccrual - m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_BEFORE_REVERSEACCRUAL); - if (m_processMsg != null) - return false; - - // After reverseAccrual - m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_AFTER_REVERSEACCRUAL); - if (m_processMsg != null) - return false; - - return false; - } // reverseAccrualIt - - /** - * Re-activate. - * @return true if success - */ - public boolean reActivateIt() - { - if (log.isLoggable(Level.INFO)) log.info(toString()); - // Before reActivate - m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_BEFORE_REACTIVATE); - if (m_processMsg != null) - return false; - // After reActivate - m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_AFTER_REACTIVATE); - if (m_processMsg != null) - return false; - - setDocAction(DOCACTION_Complete); - setProcessed(false); - return true; - } // reActivateIt - - - /************************************************************************* - * Get Summary - * @return Summary of Document - */ - public String getSummary() - { - StringBuilder sb = new StringBuilder(); - sb.append(getDocumentNo()); - - if (m_lines != null) - sb.append(" (#").append(m_lines.length).append(")"); - // - Description - if (getDescription() != null && getDescription().length() > 0) - sb.append(" - ").append(getDescription()); - return sb.toString(); - } // getSummary - - /** - * Get Process Message - * @return clear text error message - */ - public String getProcessMsg() - { - return m_processMsg; - } // getProcessMsg - - /** - * Get Document Owner (Responsible) - * @return AD_User_ID - */ - public int getDoc_User_ID() - { - return getSalesRep_ID(); - } // getDoc_User_ID - - - public BigDecimal getApprovalAmt() { - // TODO Auto-generated method stub - return null; - } - - - public int getC_Currency_ID() { - // TODO Auto-generated method stub - return 0; - } - - /** - * Document Status is Complete or Closed - * @return true if CO, CL or RE - */ - public boolean isComplete() - { - String ds = getDocStatus(); - return DOCSTATUS_Completed.equals(ds) - || DOCSTATUS_Closed.equals(ds) - || DOCSTATUS_Reversed.equals(ds); - } // isComplete - -} // MDDOrder +/****************************************************************************** + * Product: Adempiere ERP & CRM Smart Business Solution * + * Copyright (C) 1999-2006 Adempiere, Inc. All Rights Reserved. * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program; if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + * Copyright (C) 2003-2007 e-Evolution,SC. All Rights Reserved. * + * Contributor(s): Victor Perez www.e-evolution.com * + *****************************************************************************/ + +package balinusa.midsuit.model; + +import java.io.File; +import java.math.BigDecimal; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; +import java.util.logging.Level; + +import org.adempiere.exceptions.AdempiereException; +import org.adempiere.exceptions.NegativeInventoryDisallowedException; +import org.compiere.model.MBPartner; +import org.compiere.model.MBPartnerLocation; +import org.compiere.model.MDocType; +import org.compiere.model.MLocator; +import org.compiere.model.MMovement; +import org.compiere.model.MPeriod; +import org.compiere.model.MProduct; +import org.compiere.model.MProject; +import org.compiere.model.MRefList; +import org.compiere.model.MStorageOnHand; +import org.compiere.model.MUser; +import org.compiere.model.ModelValidationEngine; +import org.compiere.model.ModelValidator; +import org.compiere.model.PO; +import org.compiere.model.Query; +import org.compiere.model.X_M_InOut; +import org.compiere.print.ReportEngine; +import org.compiere.process.DocAction; +import org.compiere.process.DocumentEngine; +import org.compiere.util.DB; +import org.compiere.util.Env; +import org.compiere.util.Msg; +import org.compiere.util.Util; + +/** + * Order Distribution Model. + * Please do not set DocStatus and C_DocType_ID directly. + * They are set in the process() method. + * Use DocAction and C_DocTypeTarget_ID instead. + * + * @author victor.perez@e-evolution.com, e-Evolution http://www.e-evolution.com + *
  • Original contributor of Distribution Functionality + *
  • FR [ 2520591 ] Support multiples calendar for Org + * @see http://sourceforge.net/tracker2/?func=detail&atid=879335&aid=2520591&group_id=176962 + */ +public class MID_MDDOrder extends X_DD_Order implements DocAction +{ + /** + * + */ + private static final long serialVersionUID = -5997157712614274458L; + + /** + * Create new Order by copying + * @param from order + * @param dateDoc date of the document date + * @param C_DocTypeTarget_ID target document type + * @param isSOTrx sales order + * @param counter create counter links + * @param copyASI copy line attributes Attribute Set Instance, Resaouce Assignment + * @param trxName trx + * @return Distribution Order + */ + public static MID_MDDOrder copyFrom (MID_MDDOrder from, Timestamp dateDoc, + int C_DocTypeTarget_ID, boolean isSOTrx, boolean counter, boolean copyASI, + String trxName) + { + MID_MDDOrder to = new MID_MDDOrder (from.getCtx(), 0, trxName); + to.set_TrxName(trxName); + PO.copyValues(from, to, from.getAD_Client_ID(), from.getAD_Org_ID()); + to.set_ValueNoCheck ("DD_Order_ID", I_ZERO); + to.set_ValueNoCheck ("DocumentNo", null); + // + to.setDocStatus (DOCSTATUS_Drafted); // Draft + to.setDocAction(DOCACTION_Complete); + // + to.setC_DocType_ID(0); + to.setIsSOTrx(isSOTrx); + // + to.setIsSelected (false); + to.setDateOrdered (dateDoc); + to.setDatePromised (dateDoc); // assumption + to.setDatePrinted(null); + to.setIsPrinted (false); + // + to.setIsApproved (false); + // + to.setIsDelivered(false); + to.setProcessed (false); + if (counter) + to.setRef_Order_ID(from.getDD_Order_ID()); + else + to.setRef_Order_ID(0); + // + if (!to.save(trxName)) + throw new IllegalStateException("Could not create Order"); + if (counter) + from.setRef_Order_ID(to.getDD_Order_ID()); + + if (to.copyLinesFrom(from, counter, copyASI) == 0) + throw new IllegalStateException("Could not create Order Lines"); + + return to; + } // copyFrom + + + /************************************************************************** + * Default Constructor + * @param ctx context + * @param DD_Order_ID order to load, (0 create new order) + * @param trxName trx name + */ + public MID_MDDOrder(Properties ctx, int DD_Order_ID, String trxName) + { + super (ctx, DD_Order_ID, trxName); + // New + if (DD_Order_ID == 0) + { + setDocStatus(DOCSTATUS_Drafted); + setDocAction (DOCACTION_Prepare); + // + setDeliveryRule (DELIVERYRULE_Availability); + setFreightCostRule (FREIGHTCOSTRULE_FreightIncluded); + setPriorityRule (PRIORITYRULE_Medium); + setDeliveryViaRule (DELIVERYVIARULE_Pickup); + // + setIsSelected (false); + setIsSOTrx (true); + setIsDropShip(false); + setSendEMail (false); + // + setIsApproved(false); + setIsPrinted(false); + setIsDelivered(false); + // + super.setProcessed(false); + setProcessing(false); + + setDatePromised (new Timestamp(System.currentTimeMillis())); + setDateOrdered (new Timestamp(System.currentTimeMillis())); + + setFreightAmt (Env.ZERO); + setChargeAmt (Env.ZERO); + + } + } // MDDOrder + + /************************************************************************** + * Project Constructor + * @param project Project to create Order from + * @param IsSOTrx sales order + * @param DocSubTypeSO if SO DocType Target (default DocSubTypeSO_OnCredit) + */ + public MID_MDDOrder (MProject project, boolean IsSOTrx, String DocSubTypeSO) + { + this (project.getCtx(), 0, project.get_TrxName()); + setAD_Client_ID(project.getAD_Client_ID()); + setAD_Org_ID(project.getAD_Org_ID()); + setC_Campaign_ID(project.getC_Campaign_ID()); + setSalesRep_ID(project.getSalesRep_ID()); + // + setC_Project_ID(project.getC_Project_ID()); + setDescription(project.getName()); + Timestamp ts = project.getDateContract(); + if (ts != null) + setDateOrdered (ts); + ts = project.getDateFinish(); + if (ts != null) + setDatePromised (ts); + // + setC_BPartner_ID(project.getC_BPartner_ID()); + setC_BPartner_Location_ID(project.getC_BPartner_Location_ID()); + setAD_User_ID(project.getAD_User_ID()); + // + setM_Warehouse_ID(project.getM_Warehouse_ID()); + // + setIsSOTrx(IsSOTrx); + } // MDDOrder + + /** + * Load Constructor + * @param ctx context + * @param rs result set record + * @param trxName transaction + */ + public MID_MDDOrder (Properties ctx, ResultSet rs, String trxName) + { + super(ctx, rs, trxName); + } // MDDOrder + + /** Order Lines */ + private MID_MDDOrderLine[] m_lines = null; + + /** Force Creation of order */ + @SuppressWarnings("unused") + private boolean m_forceCreation = false; + + /** + * Add to Description + * @param description text + */ + public void addDescription (String description) + { + String desc = getDescription(); + if (desc == null) + setDescription(description); + else + setDescription(desc + " | " + description); + } // addDescription + + /** + * Set Ship Business Partner + * @param C_BPartner_ID bpartner + */ + public void setShip_BPartner_ID (int C_BPartner_ID) + { + super.setC_BPartner_ID (C_BPartner_ID); + } // setShip_BPartner_ID + + /** + * Set Ship Business Partner Location + * @param C_BPartner_Location_ID bp location + */ + public void setShip_Location_ID (int C_BPartner_Location_ID) + { + super.setC_BPartner_Location_ID (C_BPartner_Location_ID); + } // setShip_Location_ID + + /** + * Set Ship Business Partner Contact + * @param AD_User_ID user + */ + public void setShip_User_ID (int AD_User_ID) + { + super.setAD_User_ID (AD_User_ID); + } // setShip_User_ID + + /** + * Set Business Partner Defaults & Details. + * SOTrx should be set. + * @param bp business partner + */ + public void setBPartner (MBPartner bp) + { + if (bp == null) + return; + + setC_BPartner_ID(bp.getC_BPartner_ID()); + // Defaults Payment Term + int ii = 0; + if (isSOTrx()) + ii = bp.getC_PaymentTerm_ID(); + else + ii = bp.getPO_PaymentTerm_ID(); + + // Default Price List + if (isSOTrx()) + ii = bp.getM_PriceList_ID(); + else + ii = bp.getPO_PriceList_ID(); + // Default Delivery/Via Rule + String ss = bp.getDeliveryRule(); + if (ss != null) + setDeliveryRule(ss); + ss = bp.getDeliveryViaRule(); + if (ss != null) + setDeliveryViaRule(ss); + // Default Invoice/Payment Rule + ss = bp.getInvoiceRule(); + + if (getSalesRep_ID() == 0) + { + ii = Env.getAD_User_ID(getCtx()); + if (ii != 0) + setSalesRep_ID (ii); + } + + // Set Locations + MBPartnerLocation[] locs = bp.getLocations(false); + if (locs != null) + { + for (int i = 0; i < locs.length; i++) + { + if (locs[i].isShipTo()) + { + super.setC_BPartner_Location_ID(locs[i].getC_BPartner_Location_ID()); + } + } + // set to first + if (getC_BPartner_Location_ID() == 0 && locs.length > 0) + { + super.setC_BPartner_Location_ID(locs[0].getC_BPartner_Location_ID()); + } + } + if (getC_BPartner_Location_ID() == 0) + { + log.log(Level.SEVERE, "MDDOrder.setBPartner - Has no Ship To Address: " + bp); + } + + // Set Contact + MUser[] contacts = bp.getContacts(false); + if (contacts != null && contacts.length == 1) + { + setAD_User_ID(contacts[0].getAD_User_ID()); + } + } // setBPartner + + + /** + * Copy Lines From other Order + * @param otherOrder order + * @param counter set counter info + * @param copyASI copy line attributes Attribute Set Instance, Resource Assignment + * @return number of lines copied + */ + public int copyLinesFrom (MID_MDDOrder otherOrder, boolean counter, boolean copyASI) + { + if (isProcessed() || otherOrder == null) + return 0; + MID_MDDOrderLine[] fromLines = otherOrder.getLines(false, null); + int count = 0; + for (int i = 0; i < fromLines.length; i++) + { + MID_MDDOrderLine line = new MID_MDDOrderLine (this); + PO.copyValues(fromLines[i], line, getAD_Client_ID(), getAD_Org_ID()); + line.setDD_Order_ID(getDD_Order_ID()); + line.setOrder(this); + // References + if (!copyASI) + { + line.setM_AttributeSetInstance_ID(0); + //line.setS_ResourceAssignment_ID(0); + } + + line.setQtyDelivered(Env.ZERO); + line.setQtyReserved(Env.ZERO); + line.setDateDelivered(null); + + line.setProcessed(false); + if (line.save(get_TrxName())) + count++; + } + if (fromLines.length != count) + log.log(Level.SEVERE, "Line difference - From=" + fromLines.length + " <> Saved=" + count); + return count; + } // copyLinesFrom + + + /************************************************************************** + * String Representation + * @return info + */ + public String toString () + { + StringBuffer sb = new StringBuffer ("MDDOrder[") + .append(get_ID()).append("-").append(getDocumentNo()) + .append(",IsSOTrx=").append(isSOTrx()) + .append(",C_DocType_ID=").append(getC_DocType_ID()) + .append ("]"); + return sb.toString (); + } // toString + + /** + * Get Document Info + * @return document info (untranslated) + */ + public String getDocumentInfo() + { + MDocType dt = MDocType.get(getCtx(), getC_DocType_ID()); + return dt.getNameTrl() + " " + getDocumentNo(); + } // getDocumentInfo + + /** + * Create PDF + * @return File or null + */ + public File createPDF () + { + try + { + File temp = File.createTempFile(get_TableName()+get_ID()+"_", ".pdf"); + return createPDF (temp); + } + catch (Exception e) + { + log.severe("Could not create PDF - " + e.getMessage()); + } + return null; + } // getPDF + + /** + * Create PDF file + * @param file output file + * @return file if success + */ + public File createPDF (File file) + { + ReportEngine re = ReportEngine.get (getCtx(), ReportEngine.DISTRIBUTION_ORDER, getDD_Order_ID()); + if (re == null) + return null; + return re.getPDF(file); + } // createPDF + + + + + /************************************************************************** + * Get Lines of Order + * @param whereClause where clause or null (starting with AND) + * @param orderClause order clause + * @return lines + */ + public MID_MDDOrderLine[] getLines (String whereClause, String orderClause) + { + StringBuffer whereClauseFinal = new StringBuffer(MID_MDDOrderLine.COLUMNNAME_DD_Order_ID).append("=?"); + if (!Util.isEmpty(whereClause, true)) + whereClauseFinal.append(" AND (").append(whereClause).append(")"); + // + List list = new Query(getCtx(), I_DD_OrderLine.Table_Name, whereClauseFinal.toString(), get_TrxName()) + .setParameters(getDD_Order_ID()) + .setOrderBy(orderClause) + .list(); + return list.toArray(new MID_MDDOrderLine[list.size()]); + } // getLines + + /** + * Get Lines of Order + * @param requery requery + * @param orderBy optional order by column + * @return lines + */ + public MID_MDDOrderLine[] getLines (boolean requery, String orderBy) + { + if (m_lines != null && !requery) { + set_TrxName(m_lines, get_TrxName()); + return m_lines; + } + // + String orderClause = ""; + if (orderBy != null && orderBy.length() > 0) + orderClause += orderBy; + else + orderClause += "Line"; + m_lines = getLines(null, orderClause); + return m_lines; + } // getLines + + /** + * Get Lines of Order. + * (useb by web store) + * @return lines + */ + public MID_MDDOrderLine[] getLines() + { + return getLines(false, null); + } // getLines + + /** + * Renumber Lines + * @param step start and step + */ + public void renumberLines (int step) + { + int number = step; + MID_MDDOrderLine[] lines = getLines(true, null); // Line is default + for (int i = 0; i < lines.length; i++) + { + MID_MDDOrderLine line = lines[i]; + line.setLine(number); + line.saveEx(get_TrxName()); + number += step; + } + m_lines = null; + } // renumberLines + + + + + /** + * Get Shipments of Order + * @return shipments + */ + public MMovement[] getMovement() + { + ArrayList list = new ArrayList(); + String sql = "SELECT DISTINCT io.* FROM M_MovementLine ml " + + "INNER JOIN M_Movement m ON (m.M_Movement_ID = ml.M_Movement_ID) " + + "INNER JOIN DD_ORDERLINE ol ON (ol.DD_ORDERLINE_ID=ml.DD_ORDERLINE_ID) " + + "INNER JOIN DD_ORDER o ON (o.DD_ORDER_ID=ol.DD_ORDER_ID) " + + "WHERE o.DD_ORDER_ID=? " + + "ORDER BY m.Created DESC"; + + PreparedStatement pstmt = null; + ResultSet rs = null; + try + { + pstmt = DB.prepareStatement(sql, get_TrxName()); + pstmt.setInt(1, getDD_Order_ID()); + rs = pstmt.executeQuery(); + while (rs.next()) + list.add(new MMovement(getCtx(), rs, get_TrxName())); + } + catch (Exception e) + { + log.log(Level.SEVERE, sql, e); + } + finally + { + DB.close(rs, pstmt); + rs = null; + pstmt = null; + } + // + MMovement[] retValue = new MMovement[list.size()]; + list.toArray(retValue); + return retValue; + } // getShipments + + + + /** + * Get Document Status + * @return Document Status Clear Text + */ + public String getDocStatusName() + { + return MRefList.getListName(getCtx(), 131, getDocStatus()); + } // getDocStatusName + + /** + * Set DocAction + * @param DocAction doc action + */ + public void setDocAction (String DocAction) + { + setDocAction (DocAction, false); + } // setDocAction + + /** + * Set Processed. + * Propergate to Lines/Taxes + * @param processed processed + */ + public void setProcessed (boolean processed) + { + super.setProcessed (processed); + if (get_ID() == 0) + return; + String set = "SET Processed='" + + (processed ? "Y" : "N") + + "' WHERE DD_Order_ID=" + getDD_Order_ID(); + int noLine = DB.executeUpdate("UPDATE DD_OrderLine " + set, get_TrxName()); + m_lines = null; + if (log.isLoggable(Level.FINE)) log.fine("setProcessed - " + processed + " - Lines=" + noLine); + } // setProcessed + + + + /************************************************************************** + * Before Save + * @param newRecord new + * @return save + */ + protected boolean beforeSave (boolean newRecord) + { + // Client/Org Check + if (getAD_Org_ID() == 0) + { + int context_AD_Org_ID = Env.getAD_Org_ID(getCtx()); + if (context_AD_Org_ID != 0) + { + setAD_Org_ID(context_AD_Org_ID); + log.warning("Changed Org to Context=" + context_AD_Org_ID); + } + } + if (getAD_Client_ID() == 0) + { + m_processMsg = "AD_Client_ID = 0"; + return false; + } + + // New Record Doc Type - make sure DocType set to 0 + if (newRecord && getC_DocType_ID() == 0) + setC_DocType_ID (0); + + // Default Warehouse + if (getM_Warehouse_ID() == 0) + { + int ii = Env.getContextAsInt(getCtx(), "#M_Warehouse_ID"); + if (ii != 0) + setM_Warehouse_ID(ii); + else + { + log.saveError("FillMandatory", Msg.getElement(getCtx(), "M_Warehouse_ID")); + return false; + } + } + // Reservations in Warehouse + if (!newRecord && is_ValueChanged("M_Warehouse_ID")) + { + MID_MDDOrderLine[] lines = getLines(false,null); + for (int i = 0; i < lines.length; i++) + { + if (!lines[i].canChangeWarehouse()) + return false; + } + } + + // No Partner Info - set Template + if (getC_BPartner_ID() == 0) + setBPartner(MBPartner.getTemplate(getCtx(), getAD_Client_ID())); + if (getC_BPartner_Location_ID() == 0) + setBPartner(new MBPartner(getCtx(), getC_BPartner_ID(), null)); + + + // Default Sales Rep + if (getSalesRep_ID() == 0) + { + int ii = Env.getContextAsInt(getCtx(), "#AD_User_ID"); + if (ii != 0) + setSalesRep_ID (ii); + } + + return true; + } // beforeSave + + + /** + * After Save + * @param newRecord new + * @param success success + * @return true if can be saved + */ + protected boolean afterSave (boolean newRecord, boolean success) + { + if (!success || newRecord) + return success; + // Propagate Description changes + if (is_ValueChanged("Description") || is_ValueChanged("POReference")) + { + String sql = "UPDATE M_Movement i" + + " SET (Description,POReference)=" + + "(SELECT Description,POReference " + + "FROM DD_Order o WHERE i.DD_Order_ID=o.DD_Order_ID) " + + "WHERE DocStatus NOT IN ('RE','CL') AND DD_Order_ID=" + getDD_Order_ID(); + int no = DB.executeUpdate(sql, get_TrxName()); + if (log.isLoggable(Level.FINE)) log.fine("Description -> #" + no); + } + + + // Sync Lines + afterSaveSync("AD_Org_ID"); + afterSaveSync("C_BPartner_ID"); + afterSaveSync("C_BPartner_Location_ID"); + afterSaveSync("DateOrdered"); + afterSaveSync("DatePromised"); + afterSaveSync("M_Shipper_ID"); + // + return true; + } // afterSave + + private void afterSaveSync (String columnName) + { + if (is_ValueChanged(columnName)) + { + final String whereClause = I_DD_Order.COLUMNNAME_DD_Order_ID + "=?"; + List lines = new Query (getCtx(), I_DD_OrderLine.Table_Name, whereClause, get_TrxName()) + .setParameters(getDD_Order_ID()) + .list(); + + for (MID_MDDOrderLine line : lines) + { + line.set_ValueOfColumn(columnName, get_Value(columnName)); + line.saveEx(); + if (log.isLoggable(Level.FINE)) log.fine(columnName + " Lines -> #" + get_Value(columnName)); + } + } + } // afterSaveSync + + /** + * Set DocAction + * @param DocAction doc oction + * @param forceCreation force creation + */ + public void setDocAction (String DocAction, boolean forceCreation) + { + super.setDocAction (DocAction); + m_forceCreation = forceCreation; + } // setDocAction + + + /** + * Before Delete + * @return true of it can be deleted + */ + protected boolean beforeDelete () + { + if (isProcessed()) + return false; + + getLines(); + for (int i = 0; i < m_lines.length; i++) + { + m_lines[i].delete(true); + } + return true; + } // beforeDelete + + /************************************************************************** + * Process document + * @param processAction document action + * @return true if performed + */ + public boolean processIt (String processAction) + { + m_processMsg = null; + DocumentEngine engine = new DocumentEngine (this, getDocStatus()); + return engine.processIt (processAction, getDocAction()); + } // processIt + + /** Process Message */ + private String m_processMsg = null; + /** Just Prepared Flag */ + private boolean m_justPrepared = false; + + /** + * Unlock Document. + * @return true if success + */ + public boolean unlockIt() + { + if (log.isLoggable(Level.INFO)) log.info("unlockIt - " + toString()); + setProcessing(false); + return true; + } // unlockIt + + /** + * Invalidate Document + * @return true if success + */ + public boolean invalidateIt() + { + if (log.isLoggable(Level.INFO)) log.info(toString()); + setDocAction(DOCACTION_Prepare); + return true; + } // invalidateIt + + + /************************************************************************** + * Prepare Document + * @return new status (In Progress or Invalid) + */ + public String prepareIt() + { + if (log.isLoggable(Level.INFO)) log.info(toString()); + m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_BEFORE_PREPARE); + if (m_processMsg != null) + return DocAction.STATUS_Invalid; + MDocType dt = MDocType.get(getCtx(), getC_DocType_ID()); + setDateOrdered((Timestamp) get_Value("DateDoc")); + // Std Period open? + if (!MPeriod.isOpen(getCtx(), getDateOrdered(), dt.getDocBaseType(), getAD_Org_ID())) + { + m_processMsg = "@PeriodClosed@"; + return DocAction.STATUS_Invalid; + } + + // Lines + MID_MDDOrderLine[] lines = getLines(true, "M_Product_ID"); + if (lines.length == 0) + { + m_processMsg = "@NoLines@"; + return DocAction.STATUS_Invalid; + } + + // Bug 1564431 + if (getDeliveryRule() != null && getDeliveryRule().equals(MID_MDDOrder.DELIVERYRULE_CompleteOrder)) + { + for (int i = 0; i < lines.length; i++) + { + MID_MDDOrderLine line = lines[i]; + MProduct product = line.getProduct(); + if (product != null && product.isExcludeAutoDelivery()) + { + m_processMsg = "@M_Product_ID@ "+product.getValue()+" @IsExcludeAutoDelivery@"; + return DocAction.STATUS_Invalid; + } + } + } + + + // Mandatory Product Attribute Set Instance + String mandatoryType = "='Y'"; // IN ('Y','S') + String sql = "SELECT COUNT(*) " + + "FROM DD_OrderLine ol" + + " INNER JOIN M_Product p ON (ol.M_Product_ID=p.M_Product_ID)" + + " INNER JOIN M_AttributeSet pas ON (p.M_AttributeSet_ID=pas.M_AttributeSet_ID) " + + "WHERE pas.MandatoryType" + mandatoryType + + " AND ol.M_AttributeSetInstance_ID IS NULL" + + " AND ol.DD_Order_ID=?"; + int no = DB.getSQLValue(get_TrxName(), sql, getDD_Order_ID()); + if (no != 0) + { + m_processMsg = "@LinesWithoutProductAttribute@ (" + no + ")"; + return DocAction.STATUS_Invalid; + } + + reserveStock(lines); + + m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_AFTER_PREPARE); + if (m_processMsg != null) + return DocAction.STATUS_Invalid; + + m_justPrepared = true; + return DocAction.STATUS_InProgress; + } // prepareIt + + + /** + * Reserve Inventory. + * Counterpart: MMovement.completeIt() + * @param lines distribution order lines (ordered by M_Product_ID for deadlock prevention) + * @return true if (un) reserved + */ + public void reserveStock (MID_MDDOrderLine[] lines) + { + BigDecimal Volume = Env.ZERO; + BigDecimal Weight = Env.ZERO; + + StringBuilder errors = new StringBuilder(); + // Always check and (un) Reserve Inventory + for (MID_MDDOrderLine line : lines) + { + MLocator locator_from = MLocator.get(getCtx(),line.getM_Locator_ID()); + MLocator locator_to = MLocator.get(getCtx(),line.getM_LocatorTo_ID()); + BigDecimal reserved_ordered = line.getQtyOrdered() + .subtract(line.getQtyReserved()) + .subtract(line.getQtyDelivered()); + if (reserved_ordered.signum() == 0) + { + MProduct product = line.getProduct(); + if (product != null) + { + Volume = Volume.add(product.getVolume().multiply(line.getQtyOrdered())); + Weight = Weight.add(product.getWeight().multiply(line.getQtyOrdered())); + } + continue; + } + + if (log.isLoggable(Level.FINE)) log.fine("Line=" + line.getLine() + + " - Ordered=" + line.getQtyOrdered() + + ",Reserved=" + line.getQtyReserved() + ",Delivered=" + line.getQtyDelivered()); + + // Check Product - Stocked and Item + MProduct product = line.getProduct(); + if (product != null) + { + try + { + if (product.isStocked()) + { + // Update Storage + if (!MStorageOnHand.add(getCtx(), locator_to.getM_Warehouse_ID(), locator_to.getM_Locator_ID(), + line.getM_Product_ID(), + line.getM_AttributeSetInstance_ID(), + Env.ZERO,null, get_TrxName())) + { + throw new AdempiereException(); + } + + if (!MStorageOnHand.add(getCtx(), locator_from.getM_Warehouse_ID(), locator_from.getM_Locator_ID(), + line.getM_Product_ID(), + line.getM_AttributeSetInstanceTo_ID(), + Env.ZERO,null, get_TrxName())) + { + throw new AdempiereException(); + } + + } // stockec + // update line + line.setQtyReserved(line.getQtyReserved().add(reserved_ordered)); + line.saveEx(); + // + Volume = Volume.add(product.getVolume().multiply(line.getQtyOrdered())); + Weight = Weight.add(product.getWeight().multiply(line.getQtyOrdered())); + } + catch (NegativeInventoryDisallowedException e) + { + log.severe(e.getMessage()); + errors.append(Msg.getElement(getCtx(), "Line")).append(" ").append(line.getLine()).append(": "); + errors.append(e.getMessage()).append("\n"); + } + } // product + } // reverse inventory + + if (errors.toString().length() > 0) + throw new AdempiereException(errors.toString()); + + setVolume(Volume); + setWeight(Weight); + } // reserveStock + + + /** + * Approve Document + * @return true if success + */ + public boolean approveIt() + { + if (log.isLoggable(Level.INFO)) log.info("approveIt - " + toString()); + setIsApproved(true); + return true; + } // approveIt + + /** + * Reject Approval + * @return true if success + */ + public boolean rejectIt() + { + if (log.isLoggable(Level.INFO)) log.info("rejectIt - " + toString()); + setIsApproved(false); + return true; + } // rejectIt + + + /************************************************************************** + * Complete Document + * @return new status (Complete, In Progress, Invalid, Waiting ..) + */ + public String completeIt() + { + @SuppressWarnings("unused") + MDocType dt = MDocType.get(getCtx(), getC_DocType_ID()); + + // Just prepare + if (DOCACTION_Prepare.equals(getDocAction())) + { + setProcessed(false); + return DocAction.STATUS_InProgress; + } + + // Re-Check + if (!m_justPrepared) + { + String status = prepareIt(); + m_justPrepared = false; + if (!DocAction.STATUS_InProgress.equals(status)) + return status; + } + + m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_BEFORE_COMPLETE); + if (m_processMsg != null) + return DocAction.STATUS_Invalid; + + // Implicit Approval + if (!isApproved()) + approveIt(); + getLines(true,null); + if (log.isLoggable(Level.INFO)) log.info(toString()); + StringBuilder info = new StringBuilder(); + String valid = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_AFTER_COMPLETE); + if (valid != null) + { + if (info.length() > 0) + info.append(" - "); + info.append(valid); + m_processMsg = info.toString(); + return DocAction.STATUS_Invalid; + } + + setProcessed(true); + m_processMsg = info.toString(); + // + setDocAction(DOCACTION_Close); + return DocAction.STATUS_Completed; + } // completeIt + + /** + * Void Document. + * Set Qtys to 0 - Sales: reverse all documents + * @return true if success + */ + public boolean voidIt() + { + if (log.isLoggable(Level.INFO)) log.info(toString()); + // Before Void + m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_BEFORE_VOID); + if (m_processMsg != null) + return false; + + MID_MDDOrderLine[] lines = getLines(true, "M_Product_ID"); + for (int i = 0; i < lines.length; i++) + { + MID_MDDOrderLine line = lines[i]; + BigDecimal old = line.getQtyOrdered(); + if (old.signum() != 0) + { + line.addDescription(Msg.getMsg(getCtx(), "Voided") + " (" + old + ")"); + line.saveEx(get_TrxName()); + } + } + addDescription(Msg.getMsg(getCtx(), "Voided")); + // Clear Reservations + reserveStock(lines); + // After Void + m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_AFTER_VOID); + if (m_processMsg != null) + return false; + + setProcessed(true); + setDocAction(DOCACTION_None); + return true; + } // voidIt + + /** + * Create Shipment/Invoice Reversals + * @return true if success + */ + /* + private boolean createReversals() + { + // Cancel only Sales + if (!isSOTrx()) + return true; + + if (log.isLoggable(Level.INFO)) log.info("createReversals"); + StringBuffer info = new StringBuffer(); + + // Reverse All *Shipments* + info.append("@M_InOut_ID@:"); + MInOut[] shipments = getShipments(); + for (int i = 0; i < shipments.length; i++) + { + MInOut ship = shipments[i]; + // if closed - ignore + if (MInOut.DOCSTATUS_Closed.equals(ship.getDocStatus()) + || MInOut.DOCSTATUS_Reversed.equals(ship.getDocStatus()) + || MInOut.DOCSTATUS_Voided.equals(ship.getDocStatus()) ) + continue; + ship.set_TrxName(get_TrxName()); + + // If not completed - void - otherwise reverse it + if (!MInOut.DOCSTATUS_Completed.equals(ship.getDocStatus())) + { + if (ship.voidIt()) + ship.setDocStatus(MInOut.DOCSTATUS_Voided); + } + else if (ship.reverseCorrectIt()) // completed shipment + { + ship.setDocStatus(MInOut.DOCSTATUS_Reversed); + info.append(" ").append(ship.getDocumentNo()); + } + else + { + m_processMsg = "Could not reverse Shipment " + ship; + return false; + } + ship.setDocAction(MInOut.DOCACTION_None); + ship.save(get_TrxName()); + } // for all shipments + + // Reverse All *Invoices* + info.append(" - @C_Invoice_ID@:"); + MInvoice[] invoices = getInvoices(); + for (int i = 0; i < invoices.length; i++) + { + MInvoice invoice = invoices[i]; + // if closed - ignore + if (MInvoice.DOCSTATUS_Closed.equals(invoice.getDocStatus()) + || MInvoice.DOCSTATUS_Reversed.equals(invoice.getDocStatus()) + || MInvoice.DOCSTATUS_Voided.equals(invoice.getDocStatus()) ) + continue; + invoice.set_TrxName(get_TrxName()); + + // If not completed - void - otherwise reverse it + if (!MInvoice.DOCSTATUS_Completed.equals(invoice.getDocStatus())) + { + if (invoice.voidIt()) + invoice.setDocStatus(MInvoice.DOCSTATUS_Voided); + } + else if (invoice.reverseCorrectIt()) // completed invoice + { + invoice.setDocStatus(MInvoice.DOCSTATUS_Reversed); + info.append(" ").append(invoice.getDocumentNo()); + } + else + { + m_processMsg = "Could not reverse Invoice " + invoice; + return false; + } + invoice.setDocAction(MInvoice.DOCACTION_None); + invoice.save(get_TrxName()); + } // for all shipments + + m_processMsg = info.toString(); + return true; + } // createReversals + */ + + /** + * Close Document. + * Cancel not delivered Qunatities + * @return true if success + */ + public boolean closeIt() + { + if (log.isLoggable(Level.INFO)) log.info(toString()); + // Before Close + m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_BEFORE_CLOSE); + if (m_processMsg != null) + return false; + + // Close Not delivered Qty - SO/PO + MID_MDDOrderLine[] lines = getLines(true, "M_Product_ID"); + for (int i = 0; i < lines.length; i++) + { + MID_MDDOrderLine line = lines[i]; + BigDecimal old = line.getQtyOrdered(); + if (old.compareTo(line.getQtyDelivered()) != 0) + { + line.setQtyOrdered(line.getQtyDelivered()); + // QtyEntered unchanged + line.addDescription("Close (" + old + ")"); + line.saveEx(get_TrxName()); + } + } + // Clear Reservations + reserveStock(lines); + + setProcessed(true); + setDocAction(DOCACTION_None); + // After Close + m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_AFTER_CLOSE); + if (m_processMsg != null) + return false; + return true; + } // closeIt + + /** + * Reverse Correction - same void + * @return true if success + */ + public boolean reverseCorrectIt() + { + if (log.isLoggable(Level.INFO)) log.info(toString()); + // Before reverseCorrect + m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_BEFORE_REVERSECORRECT); + if (m_processMsg != null) + return false; + + // After reverseCorrect + m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_AFTER_REVERSECORRECT); + if (m_processMsg != null) + return false; + + return voidIt(); + } // reverseCorrectionIt + + /** + * Reverse Accrual - none + * @return false + */ + public boolean reverseAccrualIt() + { + if (log.isLoggable(Level.INFO)) log.info(toString()); + // Before reverseAccrual + m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_BEFORE_REVERSEACCRUAL); + if (m_processMsg != null) + return false; + + // After reverseAccrual + m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_AFTER_REVERSEACCRUAL); + if (m_processMsg != null) + return false; + + return false; + } // reverseAccrualIt + + /** + * Re-activate. + * @return true if success + */ + public boolean reActivateIt() + { + if (log.isLoggable(Level.INFO)) log.info(toString()); + // Before reActivate + m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_BEFORE_REACTIVATE); + if (m_processMsg != null) + return false; + // After reActivate + m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_AFTER_REACTIVATE); + if (m_processMsg != null) + return false; + + setDocAction(DOCACTION_Complete); + setProcessed(false); + return true; + } // reActivateIt + + + /************************************************************************* + * Get Summary + * @return Summary of Document + */ + public String getSummary() + { + StringBuilder sb = new StringBuilder(); + sb.append(getDocumentNo()); + + if (m_lines != null) + sb.append(" (#").append(m_lines.length).append(")"); + // - Description + if (getDescription() != null && getDescription().length() > 0) + sb.append(" - ").append(getDescription()); + return sb.toString(); + } // getSummary + + /** + * Get Process Message + * @return clear text error message + */ + public String getProcessMsg() + { + return m_processMsg; + } // getProcessMsg + + /** + * Get Document Owner (Responsible) + * @return AD_User_ID + */ + public int getDoc_User_ID() + { + return getSalesRep_ID(); + } // getDoc_User_ID + + + public BigDecimal getApprovalAmt() { + // TODO Auto-generated method stub + return null; + } + + + public int getC_Currency_ID() { + // TODO Auto-generated method stub + return 0; + } + + /** + * Document Status is Complete or Closed + * @return true if CO, CL or RE + */ + public boolean isComplete() + { + String ds = getDocStatus(); + return DOCSTATUS_Completed.equals(ds) + || DOCSTATUS_Closed.equals(ds) + || DOCSTATUS_Reversed.equals(ds); + } // isComplete + +} // MDDOrder diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MDDOrderLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MDDOrderLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MDDOrderLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MDDOrderLine.java index 259583b..8549863 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MDDOrderLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MDDOrderLine.java @@ -14,7 +14,7 @@ * Copyright (C) 2003-2007 e-Evolution,SC. All Rights Reserved. * * Contributor(s): Victor Perez www.e-evolution.com * *****************************************************************************/ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MDepreciationEntry.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MDepreciationEntry.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MDepreciationEntry.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MDepreciationEntry.java index 79c8412..27e84e7 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MDepreciationEntry.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MDepreciationEntry.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.List; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MInventory.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MInventory.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MInventory.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MInventory.java index f347a79..2733fc8 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MInventory.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MInventory.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MInventoryLineMA.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MInventoryLineMA.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MInventoryLineMA.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MInventoryLineMA.java index de31d19..1bf0fdc 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MInventoryLineMA.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MInventoryLineMA.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.PreparedStatement; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MInvoice.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MInvoice.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MInvoice.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MInvoice.java index cee5fc7..8677e6c 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MInvoice.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MInvoice.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.math.RoundingMode; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MMovement.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MMovement.java similarity index 94% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MMovement.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MMovement.java index 4469d90..9617cb4 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MMovement.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MMovement.java @@ -1,60 +1,60 @@ -package andromedia.midsuit.model; - -import java.sql.ResultSet; -import java.util.Properties; - -import org.compiere.model.MMovement; -import org.compiere.util.DB; - -public class MID_MMovement extends MMovement{ - - /** - * - */ - private static final long serialVersionUID = 2444828850416277798L; - - public MID_MMovement(Properties ctx, int M_Movement_ID, String trxName) { - super(ctx, M_Movement_ID, trxName); - // TODO Auto-generated constructor stub - } - public MID_MMovement(Properties ctx, ResultSet rs, String trxName) { - super(ctx, rs, trxName); - // TODO Auto-generated constructor stub - } -// @Override -// public String prepareIt() { -// if(get_ValueAsBoolean("IsAsset")) { -// setDocAction(DOCACTION_Complete); -// return DocAction.STATUS_InProgress; -// } -// -// return super.prepareIt(); -// } -// @Override -// public String completeIt() { -// if(get_ValueAsBoolean("IsAsset")) { -// setProcessed(true); -// setDocAction(DOCACTION_Close); -// return DocAction.STATUS_Completed; -// } -// return super.completeIt(); -// } - - - @Override - protected boolean beforeSave(boolean newRecord) { - if(!newRecord) - if(is_ValueChanged("M_Locator_ID") || is_ValueChanged("M_LocatorTo_ID")){ - DB.executeUpdateEx("UPDATE M_MovementLine SET M_Locator_ID =?, M_LocatorTo_ID =? WHERE M_Movement_ID =?", new Object[] { get_ValueAsInt("M_Locator_ID") - ,get_ValueAsInt("M_LocatorTo_ID"), getM_Movement_ID()}, get_TrxName()); - } - - if(get_ValueAsInt("M_Warehouse_ID")==0 || get_Value("M_Warehouse_ID")==null) - set_ValueNoCheck("isIntraMovement", false); - else if(get_ValueAsInt("M_Warehouse_ID")>0) - set_ValueNoCheck("isIntraMovement", true); - - return super.beforeSave(newRecord); - } - -} +package balinusa.midsuit.model; + +import java.sql.ResultSet; +import java.util.Properties; + +import org.compiere.model.MMovement; +import org.compiere.util.DB; + +public class MID_MMovement extends MMovement{ + + /** + * + */ + private static final long serialVersionUID = 2444828850416277798L; + + public MID_MMovement(Properties ctx, int M_Movement_ID, String trxName) { + super(ctx, M_Movement_ID, trxName); + // TODO Auto-generated constructor stub + } + public MID_MMovement(Properties ctx, ResultSet rs, String trxName) { + super(ctx, rs, trxName); + // TODO Auto-generated constructor stub + } +// @Override +// public String prepareIt() { +// if(get_ValueAsBoolean("IsAsset")) { +// setDocAction(DOCACTION_Complete); +// return DocAction.STATUS_InProgress; +// } +// +// return super.prepareIt(); +// } +// @Override +// public String completeIt() { +// if(get_ValueAsBoolean("IsAsset")) { +// setProcessed(true); +// setDocAction(DOCACTION_Close); +// return DocAction.STATUS_Completed; +// } +// return super.completeIt(); +// } + + + @Override + protected boolean beforeSave(boolean newRecord) { + if(!newRecord) + if(is_ValueChanged("M_Locator_ID") || is_ValueChanged("M_LocatorTo_ID")){ + DB.executeUpdateEx("UPDATE M_MovementLine SET M_Locator_ID =?, M_LocatorTo_ID =? WHERE M_Movement_ID =?", new Object[] { get_ValueAsInt("M_Locator_ID") + ,get_ValueAsInt("M_LocatorTo_ID"), getM_Movement_ID()}, get_TrxName()); + } + + if(get_ValueAsInt("M_Warehouse_ID")==0 || get_Value("M_Warehouse_ID")==null) + set_ValueNoCheck("isIntraMovement", false); + else if(get_ValueAsInt("M_Warehouse_ID")>0) + set_ValueNoCheck("isIntraMovement", true); + + return super.beforeSave(newRecord); + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MMovementLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MMovementLine.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MMovementLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MMovementLine.java index ea0ab5d..cea5754 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MMovementLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MMovementLine.java @@ -1,46 +1,46 @@ -package andromedia.midsuit.model; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.util.Properties; - -import org.compiere.model.MMovement; -import org.compiere.model.MMovementLine; -import org.compiere.util.DB; - -public class MID_MMovementLine extends MMovementLine{ - - /** - * - */ - private static final long serialVersionUID = 1884915669018246342L; - public MID_MMovementLine(MMovement parent) { - super(parent); - // TODO Auto-generated constructor stub - } - public MID_MMovementLine(Properties ctx, int M_MovementLine_ID, String trxName) { - super(ctx, M_MovementLine_ID, trxName); - // TODO Auto-generated constructor stub - } - public MID_MMovementLine(Properties ctx, ResultSet rs, String trxName) { - super(ctx, rs, trxName); - // TODO Auto-generated constructor stub - } - - @Override - protected boolean afterSave(boolean newRecord, boolean success) { - if(success) { - BigDecimal totalLines = DB.getSQLValueBD(get_TrxName(), "SELECT COALESCE(SUM(Price),0) FROM M_MovementLine WHERE M_Movement_ID =?", new Object[] { getM_Movement_ID() }); - int no = DB.executeUpdateEx("UPDATE M_Movement SET TotalLines =? WHERE M_Movement_ID =?", new Object[] { totalLines, getM_Movement_ID()},get_TrxName()); - } - return super.afterSave(newRecord, success); - } - @Override - protected boolean afterDelete(boolean success) { - if(success) { - BigDecimal totalLines = DB.getSQLValueBD(get_TrxName(), "SELECT COALESCE(SUM(Price),0) FROM M_MovementLine WHERE M_Movement_ID =?", new Object[] { getM_Movement_ID() }); - int no = DB.executeUpdateEx("UPDATE M_Movement SET TotalLines =? WHERE M_Movement_ID =?", new Object[] { totalLines, getM_Movement_ID()},get_TrxName()); - } - return super.afterDelete(success); - } -} +package balinusa.midsuit.model; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.util.Properties; + +import org.compiere.model.MMovement; +import org.compiere.model.MMovementLine; +import org.compiere.util.DB; + +public class MID_MMovementLine extends MMovementLine{ + + /** + * + */ + private static final long serialVersionUID = 1884915669018246342L; + public MID_MMovementLine(MMovement parent) { + super(parent); + // TODO Auto-generated constructor stub + } + public MID_MMovementLine(Properties ctx, int M_MovementLine_ID, String trxName) { + super(ctx, M_MovementLine_ID, trxName); + // TODO Auto-generated constructor stub + } + public MID_MMovementLine(Properties ctx, ResultSet rs, String trxName) { + super(ctx, rs, trxName); + // TODO Auto-generated constructor stub + } + + @Override + protected boolean afterSave(boolean newRecord, boolean success) { + if(success) { + BigDecimal totalLines = DB.getSQLValueBD(get_TrxName(), "SELECT COALESCE(SUM(Price),0) FROM M_MovementLine WHERE M_Movement_ID =?", new Object[] { getM_Movement_ID() }); + int no = DB.executeUpdateEx("UPDATE M_Movement SET TotalLines =? WHERE M_Movement_ID =?", new Object[] { totalLines, getM_Movement_ID()},get_TrxName()); + } + return super.afterSave(newRecord, success); + } + @Override + protected boolean afterDelete(boolean success) { + if(success) { + BigDecimal totalLines = DB.getSQLValueBD(get_TrxName(), "SELECT COALESCE(SUM(Price),0) FROM M_MovementLine WHERE M_Movement_ID =?", new Object[] { getM_Movement_ID() }); + int no = DB.executeUpdateEx("UPDATE M_Movement SET TotalLines =? WHERE M_Movement_ID =?", new Object[] { totalLines, getM_Movement_ID()},get_TrxName()); + } + return super.afterDelete(success); + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MOrder.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MOrder.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MOrder.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MOrder.java index 1dde5a6..5e10a9e 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MOrder.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MOrder.java @@ -1,342 +1,342 @@ -package andromedia.midsuit.model; - -import java.math.RoundingMode; -import java.sql.ResultSet; -import java.sql.Timestamp; -import java.util.Properties; -import java.util.logging.Level; - -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.MDocType; -import org.compiere.model.MInOut; -import org.compiere.model.MInOutLine; -import org.compiere.model.MInvoice; -import org.compiere.model.MInvoiceLine; -import org.compiere.model.MInvoicePaySchedule; -import org.compiere.model.MOrder; -import org.compiere.model.MOrderLine; -import org.compiere.model.MOrderPaySchedule; -import org.compiere.model.MProject; -import org.compiere.model.MSysConfig; -import org.compiere.model.MWarehouse; -import org.compiere.model.ModelValidationEngine; -import org.compiere.model.ModelValidator; -import org.compiere.model.PO; -import org.compiere.process.DocAction; -import org.compiere.process.DocOptions; -import org.compiere.util.DB; -import org.compiere.util.Msg; -import org.compiere.util.Util; - -public class MID_MOrder extends MOrder implements DocOptions{ - - /** - * - */ - private static final long serialVersionUID = 5957690840999925125L; - - @Override - public int customizeValidActions(String docStatus, Object processing, String orderType, String isSOTrx, - int AD_Table_ID, String[] docAction, String[] options, int index) { - for (int i = 0; i < options.length; i++) { - options[i] = null; - } - - index = 0; - - if (docStatus.equals(DocAction.STATUS_Drafted)) { - options[index++] = DocAction.ACTION_Complete; - options[index++] = DocAction.ACTION_Void; - } else if (docStatus.equals(DocAction.STATUS_InProgress)) { - options[index++] = DocAction.ACTION_Complete; - options[index++] = DocAction.ACTION_Void; - } else if (docStatus.equals(DocAction.STATUS_Completed)) { - options[index++] = DocAction.ACTION_Close; - options[index++] = DocAction.ACTION_Void; - } else if (docStatus.equals(DocAction.STATUS_Invalid)) { - options[index++] = DocAction.ACTION_Complete; - options[index++] = DocAction.ACTION_Void; - } - return index; - } - public MID_MOrder(Properties ctx, int C_Order_ID, String trxName) { - super(ctx, C_Order_ID, trxName); - // TODO Auto-generated constructor stub - } - public MID_MOrder(MProject project, boolean IsSOTrx, String DocSubTypeSO) { - super(project, IsSOTrx, DocSubTypeSO); - // TODO Auto-generated constructor stub - } - public MID_MOrder(Properties ctx, ResultSet rs, String trxName) { - super(ctx, rs, trxName); - // TODO Auto-generated constructor stub - } - - /** - * Complete Document - * @return new status (Complete, In Progress, Invalid, Waiting ..) - */ - @Override - public String completeIt() - { - MDocType dt = MDocType.get(getCtx(), getC_DocType_ID()); - String DocSubTypeSO = dt.getDocSubTypeSO(); - - // Just prepare - if (DOCACTION_Prepare.equals(getDocAction())) - { - setProcessed(false); - return DocAction.STATUS_InProgress; - } - - // Set the definite document number after completed (if needed) - setDefiniteDocumentNo(); - - // Offers - if (MDocType.DOCSUBTYPESO_Proposal.equals(DocSubTypeSO) - || MDocType.DOCSUBTYPESO_Quotation.equals(DocSubTypeSO)) - { - // Binding - if (MDocType.DOCSUBTYPESO_Quotation.equals(DocSubTypeSO)) - reserveStock(dt, getLines(true, MOrderLine.COLUMNNAME_M_Product_ID)); - m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_BEFORE_COMPLETE); - if (m_processMsg != null) - return DocAction.STATUS_Invalid; - m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_AFTER_COMPLETE); - if (m_processMsg != null) - return DocAction.STATUS_Invalid; - setProcessed(true); - return DocAction.STATUS_Completed; - } - // Waiting Payment - until we have a payment - if (!m_forceCreation - && MDocType.DOCSUBTYPESO_PrepayOrder.equals(DocSubTypeSO) - && getC_Payment_ID() == 0 && getC_CashLine_ID() == 0) - { - setProcessed(true); - return DocAction.STATUS_WaitingPayment; - } - - // Re-Check - if (!m_justPrepared) - { - String status = prepareIt(); - m_justPrepared = false; - if (!DocAction.STATUS_InProgress.equals(status)) - return status; - } - - m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_BEFORE_COMPLETE); - if (m_processMsg != null) - return DocAction.STATUS_Invalid; - - // Implicit Approval - if (!isApproved()) - approveIt(); - getLines(true,null); - if (log.isLoggable(Level.INFO)) log.info(toString()); - StringBuilder info = new StringBuilder(); - - boolean realTimePOS = MSysConfig.getBooleanValue(MSysConfig.REAL_TIME_POS, false , getAD_Client_ID()); - - // Counter Documents - // move by IDEMPIERE-2216 - MOrder counter = createCounterDoc(); - if (counter != null) - info.append(" - @CounterDoc@: @Order@=").append(counter.getDocumentNo()); - - // Create SO Shipment - Force Shipment - MInOut shipment = null; - if (MDocType.DOCSUBTYPESO_OnCreditOrder.equals(DocSubTypeSO) // (W)illCall(I)nvoice - || MDocType.DOCSUBTYPESO_WarehouseOrder.equals(DocSubTypeSO) // (W)illCall(P)ickup - || MDocType.DOCSUBTYPESO_POSOrder.equals(DocSubTypeSO) // (W)alkIn(R)eceipt - || MDocType.DOCSUBTYPESO_PrepayOrder.equals(DocSubTypeSO)) - { - if (!DELIVERYRULE_Force.equals(getDeliveryRule())) - { - MWarehouse wh = new MWarehouse (getCtx(), getM_Warehouse_ID(), get_TrxName()); - if (!wh.isDisallowNegativeInv()) - setDeliveryRule(DELIVERYRULE_Force); - } - // - shipment = createShipment (dt, realTimePOS ? null : getDateOrdered()); - if (shipment == null) - return DocAction.STATUS_Invalid; - info.append("@M_InOut_ID@: ").append(shipment.getDocumentNo()); - String msg = shipment.getProcessMsg(); - if (msg != null && msg.length() > 0) - info.append(" (").append(msg).append(")"); - } // Shipment - - - // Create SO Invoice - Always invoice complete Order - if ( MDocType.DOCSUBTYPESO_POSOrder.equals(DocSubTypeSO) - || MDocType.DOCSUBTYPESO_OnCreditOrder.equals(DocSubTypeSO) - || MDocType.DOCSUBTYPESO_PrepayOrder.equals(DocSubTypeSO)) - { - MInvoice invoice = createInvoice (dt, shipment, realTimePOS ? null : getDateOrdered()); - if (invoice == null) - return DocAction.STATUS_Invalid; - info.append(" - @C_Invoice_ID@: ").append(invoice.getDocumentNo()); - String msg = invoice.getProcessMsg(); - if (msg != null && msg.length() > 0) - info.append(" (").append(msg).append(")"); - } // Invoice - - String msg = createPOSPayments(); - if (msg != null) { - m_processMsg = msg; - return DocAction.STATUS_Invalid; - } - - // User Validation - String valid = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_AFTER_COMPLETE); - if (valid != null) - { - if (info.length() > 0) - info.append(" - "); - info.append(valid); - m_processMsg = info.toString(); - return DocAction.STATUS_Invalid; - } - - //landed cost - if (!isSOTrx()) - { - String error = landedCostAllocation(); - if (!Util.isEmpty(error)) - { - m_processMsg = error; - return DocAction.STATUS_Invalid; - } - } - - updateOverReceipt(); - - setProcessed(true); - m_processMsg = info.toString(); - // - setDocAction(DOCACTION_Close); - return DocAction.STATUS_Completed; - } // completeIt - - /** - * Create Invoice - * @param dt order document type - * @param shipment optional shipment - * @param invoiceDate invoice date - * @return invoice or null - */ - @Override - protected MInvoice createInvoice (MDocType dt, MInOut shipment, Timestamp invoiceDate) - { - if (log.isLoggable(Level.INFO)) log.info(dt.toString()); - MID_MInvoice invoice = new MID_MInvoice (this, dt.getC_DocTypeInvoice_ID(), invoiceDate); - if (!invoice.save(get_TrxName())) - { - m_processMsg = "Could not create Invoice"; - return null; - } - - // If we have a Shipment - use that as a base - if (shipment != null) - { - if (!INVOICERULE_AfterDelivery.equals(getInvoiceRule())) - setInvoiceRule(INVOICERULE_AfterDelivery); - // - MInOutLine[] sLines = shipment.getLines(false); - for (int i = 0; i < sLines.length; i++) - { - // Order - MInOutLine sLine = sLines[i]; - // - MInvoiceLine iLine = new MInvoiceLine(invoice); - iLine.setShipLine(sLine); - // Qty = Delivered - if (sLine.sameOrderLineUOM()) - iLine.setQtyEntered(sLine.getQtyEntered()); - else - iLine.setQtyEntered(sLine.getMovementQty()); - iLine.setQtyInvoiced(sLine.getMovementQty()); - if (!iLine.save(get_TrxName())) - { - m_processMsg = "Could not create Invoice Line from Shipment Line"; - return null; - } - // - sLine.setIsInvoiced(true); - if (!sLine.save(get_TrxName())) - { - log.warning("Could not update Shipment line: " + sLine); - } - } - } - else // Create Invoice from Order - { - if (!INVOICERULE_Immediate.equals(getInvoiceRule())) - setInvoiceRule(INVOICERULE_Immediate); - // - MOrderLine[] oLines = getLines(); - for (int i = 0; i < oLines.length; i++) - { - MOrderLine oLine = oLines[i]; - // - MInvoiceLine iLine = new MInvoiceLine(invoice); - iLine.setOrderLine(oLine); - // Qty = Ordered - Invoiced - iLine.setQtyInvoiced(oLine.getQtyOrdered().subtract(oLine.getQtyInvoiced())); - if (oLine.getQtyOrdered().compareTo(oLine.getQtyEntered()) == 0) - iLine.setQtyEntered(iLine.getQtyInvoiced()); - else - iLine.setQtyEntered(iLine.getQtyInvoiced().multiply(oLine.getQtyEntered()) - .divide(oLine.getQtyOrdered(), 12, RoundingMode.HALF_UP)); - if (!iLine.save(get_TrxName())) - { - m_processMsg = "Could not create Invoice Line from Order Line"; - return null; - } - } - } - - // Copy payment schedule from order to invoice if any - for (MOrderPaySchedule ops : MOrderPaySchedule.getOrderPaySchedule(getCtx(), getC_Order_ID(), 0, get_TrxName())) { - MInvoicePaySchedule ips = new MInvoicePaySchedule(getCtx(), 0, get_TrxName()); - PO.copyValues(ops, ips); - ips.setC_Invoice_ID(invoice.getC_Invoice_ID()); - ips.setAD_Org_ID(ops.getAD_Org_ID()); - ips.setProcessing(ops.isProcessing()); - ips.setIsActive(ops.isActive()); - if (!ips.save()) { - m_processMsg = "ERROR: creating pay schedule for invoice from : "+ ops.toString(); - return null; - } - } - - // added AdempiereException by zuhri - if (!invoice.processIt(DocAction.ACTION_Complete)) - throw new AdempiereException(Msg.getMsg(getCtx(), "FailedProcessingDocument") + " - " + invoice.getProcessMsg()); - // end added - invoice.saveEx(get_TrxName()); - setC_CashLine_ID(invoice.getC_CashLine_ID()); - if (!DOCSTATUS_Completed.equals(invoice.getDocStatus())) - { - m_processMsg = "@C_Invoice_ID@: " + invoice.getProcessMsg(); - return null; - } - return invoice; - } // createInvoice - - /** - * Update QtyOverReceipt of M_InOutLine - */ - private void updateOverReceipt() { - for(MOrderLine line : m_lines) { - if (line.getM_Product_ID() <= 0) continue; - if (line.getQtyDelivered().signum() > 0 && line.getQtyOrdered().compareTo(line.getQtyDelivered()) >= 0) { - DB.executeUpdateEx("UPDATE M_InOutLine Set QtyOverReceipt=0 WHERE C_OrderLine_ID=? AND QtyOverReceipt>0", - new Object[] {line.getC_OrderLine_ID()}, get_TrxName()); - } - } - } - -} +package balinusa.midsuit.model; + +import java.math.RoundingMode; +import java.sql.ResultSet; +import java.sql.Timestamp; +import java.util.Properties; +import java.util.logging.Level; + +import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MDocType; +import org.compiere.model.MInOut; +import org.compiere.model.MInOutLine; +import org.compiere.model.MInvoice; +import org.compiere.model.MInvoiceLine; +import org.compiere.model.MInvoicePaySchedule; +import org.compiere.model.MOrder; +import org.compiere.model.MOrderLine; +import org.compiere.model.MOrderPaySchedule; +import org.compiere.model.MProject; +import org.compiere.model.MSysConfig; +import org.compiere.model.MWarehouse; +import org.compiere.model.ModelValidationEngine; +import org.compiere.model.ModelValidator; +import org.compiere.model.PO; +import org.compiere.process.DocAction; +import org.compiere.process.DocOptions; +import org.compiere.util.DB; +import org.compiere.util.Msg; +import org.compiere.util.Util; + +public class MID_MOrder extends MOrder implements DocOptions{ + + /** + * + */ + private static final long serialVersionUID = 5957690840999925125L; + + @Override + public int customizeValidActions(String docStatus, Object processing, String orderType, String isSOTrx, + int AD_Table_ID, String[] docAction, String[] options, int index) { + for (int i = 0; i < options.length; i++) { + options[i] = null; + } + + index = 0; + + if (docStatus.equals(DocAction.STATUS_Drafted)) { + options[index++] = DocAction.ACTION_Complete; + options[index++] = DocAction.ACTION_Void; + } else if (docStatus.equals(DocAction.STATUS_InProgress)) { + options[index++] = DocAction.ACTION_Complete; + options[index++] = DocAction.ACTION_Void; + } else if (docStatus.equals(DocAction.STATUS_Completed)) { + options[index++] = DocAction.ACTION_Close; + options[index++] = DocAction.ACTION_Void; + } else if (docStatus.equals(DocAction.STATUS_Invalid)) { + options[index++] = DocAction.ACTION_Complete; + options[index++] = DocAction.ACTION_Void; + } + return index; + } + public MID_MOrder(Properties ctx, int C_Order_ID, String trxName) { + super(ctx, C_Order_ID, trxName); + // TODO Auto-generated constructor stub + } + public MID_MOrder(MProject project, boolean IsSOTrx, String DocSubTypeSO) { + super(project, IsSOTrx, DocSubTypeSO); + // TODO Auto-generated constructor stub + } + public MID_MOrder(Properties ctx, ResultSet rs, String trxName) { + super(ctx, rs, trxName); + // TODO Auto-generated constructor stub + } + + /** + * Complete Document + * @return new status (Complete, In Progress, Invalid, Waiting ..) + */ + @Override + public String completeIt() + { + MDocType dt = MDocType.get(getCtx(), getC_DocType_ID()); + String DocSubTypeSO = dt.getDocSubTypeSO(); + + // Just prepare + if (DOCACTION_Prepare.equals(getDocAction())) + { + setProcessed(false); + return DocAction.STATUS_InProgress; + } + + // Set the definite document number after completed (if needed) + setDefiniteDocumentNo(); + + // Offers + if (MDocType.DOCSUBTYPESO_Proposal.equals(DocSubTypeSO) + || MDocType.DOCSUBTYPESO_Quotation.equals(DocSubTypeSO)) + { + // Binding + if (MDocType.DOCSUBTYPESO_Quotation.equals(DocSubTypeSO)) + reserveStock(dt, getLines(true, MOrderLine.COLUMNNAME_M_Product_ID)); + m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_BEFORE_COMPLETE); + if (m_processMsg != null) + return DocAction.STATUS_Invalid; + m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_AFTER_COMPLETE); + if (m_processMsg != null) + return DocAction.STATUS_Invalid; + setProcessed(true); + return DocAction.STATUS_Completed; + } + // Waiting Payment - until we have a payment + if (!m_forceCreation + && MDocType.DOCSUBTYPESO_PrepayOrder.equals(DocSubTypeSO) + && getC_Payment_ID() == 0 && getC_CashLine_ID() == 0) + { + setProcessed(true); + return DocAction.STATUS_WaitingPayment; + } + + // Re-Check + if (!m_justPrepared) + { + String status = prepareIt(); + m_justPrepared = false; + if (!DocAction.STATUS_InProgress.equals(status)) + return status; + } + + m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_BEFORE_COMPLETE); + if (m_processMsg != null) + return DocAction.STATUS_Invalid; + + // Implicit Approval + if (!isApproved()) + approveIt(); + getLines(true,null); + if (log.isLoggable(Level.INFO)) log.info(toString()); + StringBuilder info = new StringBuilder(); + + boolean realTimePOS = MSysConfig.getBooleanValue(MSysConfig.REAL_TIME_POS, false , getAD_Client_ID()); + + // Counter Documents + // move by IDEMPIERE-2216 + MOrder counter = createCounterDoc(); + if (counter != null) + info.append(" - @CounterDoc@: @Order@=").append(counter.getDocumentNo()); + + // Create SO Shipment - Force Shipment + MInOut shipment = null; + if (MDocType.DOCSUBTYPESO_OnCreditOrder.equals(DocSubTypeSO) // (W)illCall(I)nvoice + || MDocType.DOCSUBTYPESO_WarehouseOrder.equals(DocSubTypeSO) // (W)illCall(P)ickup + || MDocType.DOCSUBTYPESO_POSOrder.equals(DocSubTypeSO) // (W)alkIn(R)eceipt + || MDocType.DOCSUBTYPESO_PrepayOrder.equals(DocSubTypeSO)) + { + if (!DELIVERYRULE_Force.equals(getDeliveryRule())) + { + MWarehouse wh = new MWarehouse (getCtx(), getM_Warehouse_ID(), get_TrxName()); + if (!wh.isDisallowNegativeInv()) + setDeliveryRule(DELIVERYRULE_Force); + } + // + shipment = createShipment (dt, realTimePOS ? null : getDateOrdered()); + if (shipment == null) + return DocAction.STATUS_Invalid; + info.append("@M_InOut_ID@: ").append(shipment.getDocumentNo()); + String msg = shipment.getProcessMsg(); + if (msg != null && msg.length() > 0) + info.append(" (").append(msg).append(")"); + } // Shipment + + + // Create SO Invoice - Always invoice complete Order + if ( MDocType.DOCSUBTYPESO_POSOrder.equals(DocSubTypeSO) + || MDocType.DOCSUBTYPESO_OnCreditOrder.equals(DocSubTypeSO) + || MDocType.DOCSUBTYPESO_PrepayOrder.equals(DocSubTypeSO)) + { + MInvoice invoice = createInvoice (dt, shipment, realTimePOS ? null : getDateOrdered()); + if (invoice == null) + return DocAction.STATUS_Invalid; + info.append(" - @C_Invoice_ID@: ").append(invoice.getDocumentNo()); + String msg = invoice.getProcessMsg(); + if (msg != null && msg.length() > 0) + info.append(" (").append(msg).append(")"); + } // Invoice + + String msg = createPOSPayments(); + if (msg != null) { + m_processMsg = msg; + return DocAction.STATUS_Invalid; + } + + // User Validation + String valid = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_AFTER_COMPLETE); + if (valid != null) + { + if (info.length() > 0) + info.append(" - "); + info.append(valid); + m_processMsg = info.toString(); + return DocAction.STATUS_Invalid; + } + + //landed cost + if (!isSOTrx()) + { + String error = landedCostAllocation(); + if (!Util.isEmpty(error)) + { + m_processMsg = error; + return DocAction.STATUS_Invalid; + } + } + + updateOverReceipt(); + + setProcessed(true); + m_processMsg = info.toString(); + // + setDocAction(DOCACTION_Close); + return DocAction.STATUS_Completed; + } // completeIt + + /** + * Create Invoice + * @param dt order document type + * @param shipment optional shipment + * @param invoiceDate invoice date + * @return invoice or null + */ + @Override + protected MInvoice createInvoice (MDocType dt, MInOut shipment, Timestamp invoiceDate) + { + if (log.isLoggable(Level.INFO)) log.info(dt.toString()); + MID_MInvoice invoice = new MID_MInvoice (this, dt.getC_DocTypeInvoice_ID(), invoiceDate); + if (!invoice.save(get_TrxName())) + { + m_processMsg = "Could not create Invoice"; + return null; + } + + // If we have a Shipment - use that as a base + if (shipment != null) + { + if (!INVOICERULE_AfterDelivery.equals(getInvoiceRule())) + setInvoiceRule(INVOICERULE_AfterDelivery); + // + MInOutLine[] sLines = shipment.getLines(false); + for (int i = 0; i < sLines.length; i++) + { + // Order + MInOutLine sLine = sLines[i]; + // + MInvoiceLine iLine = new MInvoiceLine(invoice); + iLine.setShipLine(sLine); + // Qty = Delivered + if (sLine.sameOrderLineUOM()) + iLine.setQtyEntered(sLine.getQtyEntered()); + else + iLine.setQtyEntered(sLine.getMovementQty()); + iLine.setQtyInvoiced(sLine.getMovementQty()); + if (!iLine.save(get_TrxName())) + { + m_processMsg = "Could not create Invoice Line from Shipment Line"; + return null; + } + // + sLine.setIsInvoiced(true); + if (!sLine.save(get_TrxName())) + { + log.warning("Could not update Shipment line: " + sLine); + } + } + } + else // Create Invoice from Order + { + if (!INVOICERULE_Immediate.equals(getInvoiceRule())) + setInvoiceRule(INVOICERULE_Immediate); + // + MOrderLine[] oLines = getLines(); + for (int i = 0; i < oLines.length; i++) + { + MOrderLine oLine = oLines[i]; + // + MInvoiceLine iLine = new MInvoiceLine(invoice); + iLine.setOrderLine(oLine); + // Qty = Ordered - Invoiced + iLine.setQtyInvoiced(oLine.getQtyOrdered().subtract(oLine.getQtyInvoiced())); + if (oLine.getQtyOrdered().compareTo(oLine.getQtyEntered()) == 0) + iLine.setQtyEntered(iLine.getQtyInvoiced()); + else + iLine.setQtyEntered(iLine.getQtyInvoiced().multiply(oLine.getQtyEntered()) + .divide(oLine.getQtyOrdered(), 12, RoundingMode.HALF_UP)); + if (!iLine.save(get_TrxName())) + { + m_processMsg = "Could not create Invoice Line from Order Line"; + return null; + } + } + } + + // Copy payment schedule from order to invoice if any + for (MOrderPaySchedule ops : MOrderPaySchedule.getOrderPaySchedule(getCtx(), getC_Order_ID(), 0, get_TrxName())) { + MInvoicePaySchedule ips = new MInvoicePaySchedule(getCtx(), 0, get_TrxName()); + PO.copyValues(ops, ips); + ips.setC_Invoice_ID(invoice.getC_Invoice_ID()); + ips.setAD_Org_ID(ops.getAD_Org_ID()); + ips.setProcessing(ops.isProcessing()); + ips.setIsActive(ops.isActive()); + if (!ips.save()) { + m_processMsg = "ERROR: creating pay schedule for invoice from : "+ ops.toString(); + return null; + } + } + + // added AdempiereException by zuhri + if (!invoice.processIt(DocAction.ACTION_Complete)) + throw new AdempiereException(Msg.getMsg(getCtx(), "FailedProcessingDocument") + " - " + invoice.getProcessMsg()); + // end added + invoice.saveEx(get_TrxName()); + setC_CashLine_ID(invoice.getC_CashLine_ID()); + if (!DOCSTATUS_Completed.equals(invoice.getDocStatus())) + { + m_processMsg = "@C_Invoice_ID@: " + invoice.getProcessMsg(); + return null; + } + return invoice; + } // createInvoice + + /** + * Update QtyOverReceipt of M_InOutLine + */ + private void updateOverReceipt() { + for(MOrderLine line : m_lines) { + if (line.getM_Product_ID() <= 0) continue; + if (line.getQtyDelivered().signum() > 0 && line.getQtyOrdered().compareTo(line.getQtyDelivered()) >= 0) { + DB.executeUpdateEx("UPDATE M_InOutLine Set QtyOverReceipt=0 WHERE C_OrderLine_ID=? AND QtyOverReceipt>0", + new Object[] {line.getC_OrderLine_ID()}, get_TrxName()); + } + } + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MOrderLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MOrderLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MOrderLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MOrderLine.java index be8b5f4..3ce5717 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MOrderLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MOrderLine.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.math.RoundingMode; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MPayment.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MPayment.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MPayment.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MPayment.java index 5689f76..7b0a787 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MPayment.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MPayment.java @@ -1,229 +1,229 @@ -package andromedia.midsuit.model; - -import java.sql.ResultSet; -import java.sql.Timestamp; -import java.util.Properties; -import java.util.logging.Level; - -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.MAllocationHdr; -import org.compiere.model.MAllocationLine; -import org.compiere.model.MBPartner; -import org.compiere.model.MPayment; -import org.compiere.model.MPeriod; -import org.compiere.model.ModelValidationEngine; -import org.compiere.model.ModelValidator; -import org.compiere.process.DocAction; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.compiere.util.Msg; - -public class MID_MPayment extends MPayment{ - - /** - * - */ - private static final long serialVersionUID = 4022403262938664938L; - public MID_MPayment(Properties ctx, int C_Payment_ID, String trxName) { - super(ctx, C_Payment_ID, trxName); - // TODO Auto-generated constructor stub - } - public MID_MPayment(Properties ctx, ResultSet rs, String trxName) { - super(ctx, rs, trxName); - // TODO Auto-generated constructor stub - } - @Override - public boolean reverseCorrectIt() - { - if (log.isLoggable(Level.INFO)) log.info(toString()); - // Before reverseCorrect - m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_BEFORE_REVERSECORRECT); - if (m_processMsg != null) - return false; - - StringBuilder info = reverse(false); - if (info == null) { - return false; - } - - // After reverseCorrect - m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_AFTER_REVERSECORRECT); - if (m_processMsg != null) - return false; - - m_processMsg = info.toString(); - return true; - } // reverseCorrectionIt - /** Process Message */ - private String m_processMsg = null; - - protected StringBuilder reverse(boolean accrual) { - // Std Period open? - Timestamp dateAcct = accrual ? Env.getContextAsDate(getCtx(), "#Date") : getDateAcct(); - if (dateAcct == null) { - dateAcct = new Timestamp(System.currentTimeMillis()); - } - MPeriod.testPeriodOpen(getCtx(), dateAcct, getC_DocType_ID(), getAD_Org_ID()); - - // Create Reversal - MPayment reversal = new MPayment (getCtx(), 0, get_TrxName()); - copyValues(this, reversal); - reversal.setAD_Org_ID(getAD_Org_ID()); - // reversal.setC_Order_ID(0); // IDEMPIERE-1764 - reversal.setC_Invoice_ID(0); - reversal.setDateAcct(dateAcct); - // - reversal.setDocumentNo(getDocumentNo() + REVERSE_INDICATOR); // indicate reversals - reversal.setDocStatus(DOCSTATUS_Drafted); - reversal.setDocAction(DOCACTION_Complete); - // - reversal.setPayAmt(getPayAmt().negate()); - reversal.setDiscountAmt(getDiscountAmt().negate()); - reversal.setWriteOffAmt(getWriteOffAmt().negate()); - reversal.setOverUnderAmt(getOverUnderAmt().negate()); - // - reversal.setIsAllocated(true); - reversal.setIsReconciled(false); - reversal.setIsOnline(false); - reversal.setIsApproved(true); - reversal.setR_PnRef(null); - reversal.setR_Result(null); - reversal.setR_RespMsg(null); - reversal.setR_AuthCode(null); - reversal.setR_Info(null); - reversal.setProcessing(false); - reversal.setOProcessing("N"); - reversal.setProcessed(false); - reversal.setPosted(false); - reversal.setDescription(getDescription()); - reversal.addDescription("{->" + getDocumentNo() + ")"); - //FR [ 1948157 ] - reversal.setReversal_ID(getC_Payment_ID()); - reversal.saveEx(get_TrxName()); - // Post Reversal - if (!reversal.processIt(DocAction.ACTION_Complete)) - { - m_processMsg = "Reversal ERROR: " + reversal.getProcessMsg(); - return null; - } - reversal.closeIt(); - reversal.setDocStatus(DOCSTATUS_Reversed); - reversal.setDocAction(DOCACTION_None); - reversal.saveEx(get_TrxName()); - - // Unlink & De-Allocate - deAllocate(accrual); - setIsAllocated (true); // the allocation below is overwritten - // Set Status - addDescription("(" + reversal.getDocumentNo() + "<-)"); - setDocStatus(DOCSTATUS_Reversed); - setDocAction(DOCACTION_None); - setProcessed(true); - //FR [ 1948157 ] - setReversal_ID(reversal.getC_Payment_ID()); - - StringBuilder info = new StringBuilder(reversal.getDocumentNo()); - - // Create automatic Allocation - MAllocationHdr alloc = new MAllocationHdr (getCtx(), false, - getDateTrx(), - getC_Currency_ID(), - Msg.translate(getCtx(), "C_Payment_ID") + ": " + reversal.getDocumentNo(), get_TrxName()); - alloc.setAD_Org_ID(getAD_Org_ID()); - alloc.setDateAcct(dateAcct); // dateAcct variable already take into account the accrual parameter - alloc.saveEx(get_TrxName()); - - // Original Allocation - MAllocationLine aLine = new MAllocationLine (alloc, getPayAmt(true), - Env.ZERO, Env.ZERO, Env.ZERO); - aLine.setDocInfo(getC_BPartner_ID(), 0, 0); - aLine.setPaymentInfo(getC_Payment_ID(), 0); - if (!aLine.save(get_TrxName())) - log.warning("Automatic allocation - line not saved"); - // Reversal Allocation - aLine = new MAllocationLine (alloc, reversal.getPayAmt(true), - Env.ZERO, Env.ZERO, Env.ZERO); - aLine.setDocInfo(reversal.getC_BPartner_ID(), 0, 0); - aLine.setPaymentInfo(reversal.getC_Payment_ID(), 0); - if (!aLine.save(get_TrxName())) - log.warning("Automatic allocation - reversal line not saved"); - - // added AdempiereException by zuhri - if (!alloc.processIt(DocAction.ACTION_Complete)) - throw new AdempiereException("Failed when processing document - " + alloc.getProcessMsg()); - // end added - alloc.saveEx(get_TrxName()); - // - info.append(" - @C_AllocationHdr_ID@: ").append(alloc.getDocumentNo()); - - // Update BPartner - if (getC_BPartner_ID() != 0) - { - MBPartner bp = new MBPartner (getCtx(), getC_BPartner_ID(), get_TrxName()); - bp.setTotalOpenBalance(); - bp.saveEx(get_TrxName()); - } - - return info; - } - - protected void deAllocate(boolean accrual) - { - // if (getC_Order_ID() != 0) setC_Order_ID(0); // IDEMPIERE-1764 - // if (getC_Invoice_ID() == 0) - // return; - // De-Allocate all - MAllocationHdr[] allocations = MAllocationHdr.getOfPayment(getCtx(), - getC_Payment_ID(), get_TrxName()); - if (log.isLoggable(Level.FINE)) log.fine("#" + allocations.length); - for (int i = 0; i < allocations.length; i++) - { - allocations[i].set_TrxName(get_TrxName()); - if (DOCSTATUS_Reversed.equals(allocations[i].getDocStatus()) - || DOCSTATUS_Voided.equals(allocations[i].getDocStatus())) - { - continue; - } - - if (accrual) - { - allocations[i].setDocAction(DocAction.ACTION_Reverse_Accrual); - if (!allocations[i].processIt(DocAction.ACTION_Reverse_Accrual)) - throw new AdempiereException(allocations[i].getProcessMsg()); - } - else - { - allocations[i].setDocAction(DocAction.ACTION_Reverse_Correct); - if (!allocations[i].processIt(DocAction.ACTION_Reverse_Correct)) - throw new AdempiereException(allocations[i].getProcessMsg()); - } - allocations[i].saveEx(); - } - - // Unlink (in case allocation did not get it) - if (getC_Invoice_ID() != 0) - { - // Invoice - String sql = "UPDATE C_Invoice " - + "SET C_Payment_ID = NULL, IsPaid='N' " - + "WHERE C_Invoice_ID=" + getC_Invoice_ID() - + " AND C_Payment_ID=" + getC_Payment_ID(); - int no = DB.executeUpdate(sql, get_TrxName()); - if (no != 0) - if (log.isLoggable(Level.FINE)) log.fine("Unlink Invoice #" + no); - // Order - sql = "UPDATE C_Order o " - + "SET C_Payment_ID = NULL " - + "WHERE EXISTS (SELECT * FROM C_Invoice i " - + "WHERE o.C_Order_ID=i.C_Order_ID AND i.C_Invoice_ID=" + getC_Invoice_ID() + ")" - + " AND C_Payment_ID=" + getC_Payment_ID(); - no = DB.executeUpdate(sql, get_TrxName()); - if (no != 0) - if (log.isLoggable(Level.FINE)) log.fine("Unlink Order #" + no); - } - // - setC_Invoice_ID(0); - setIsAllocated(false); - } // deallocate - +package balinusa.midsuit.model; + +import java.sql.ResultSet; +import java.sql.Timestamp; +import java.util.Properties; +import java.util.logging.Level; + +import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MAllocationHdr; +import org.compiere.model.MAllocationLine; +import org.compiere.model.MBPartner; +import org.compiere.model.MPayment; +import org.compiere.model.MPeriod; +import org.compiere.model.ModelValidationEngine; +import org.compiere.model.ModelValidator; +import org.compiere.process.DocAction; +import org.compiere.util.DB; +import org.compiere.util.Env; +import org.compiere.util.Msg; + +public class MID_MPayment extends MPayment{ + + /** + * + */ + private static final long serialVersionUID = 4022403262938664938L; + public MID_MPayment(Properties ctx, int C_Payment_ID, String trxName) { + super(ctx, C_Payment_ID, trxName); + // TODO Auto-generated constructor stub + } + public MID_MPayment(Properties ctx, ResultSet rs, String trxName) { + super(ctx, rs, trxName); + // TODO Auto-generated constructor stub + } + @Override + public boolean reverseCorrectIt() + { + if (log.isLoggable(Level.INFO)) log.info(toString()); + // Before reverseCorrect + m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_BEFORE_REVERSECORRECT); + if (m_processMsg != null) + return false; + + StringBuilder info = reverse(false); + if (info == null) { + return false; + } + + // After reverseCorrect + m_processMsg = ModelValidationEngine.get().fireDocValidate(this,ModelValidator.TIMING_AFTER_REVERSECORRECT); + if (m_processMsg != null) + return false; + + m_processMsg = info.toString(); + return true; + } // reverseCorrectionIt + /** Process Message */ + private String m_processMsg = null; + + protected StringBuilder reverse(boolean accrual) { + // Std Period open? + Timestamp dateAcct = accrual ? Env.getContextAsDate(getCtx(), "#Date") : getDateAcct(); + if (dateAcct == null) { + dateAcct = new Timestamp(System.currentTimeMillis()); + } + MPeriod.testPeriodOpen(getCtx(), dateAcct, getC_DocType_ID(), getAD_Org_ID()); + + // Create Reversal + MPayment reversal = new MPayment (getCtx(), 0, get_TrxName()); + copyValues(this, reversal); + reversal.setAD_Org_ID(getAD_Org_ID()); + // reversal.setC_Order_ID(0); // IDEMPIERE-1764 + reversal.setC_Invoice_ID(0); + reversal.setDateAcct(dateAcct); + // + reversal.setDocumentNo(getDocumentNo() + REVERSE_INDICATOR); // indicate reversals + reversal.setDocStatus(DOCSTATUS_Drafted); + reversal.setDocAction(DOCACTION_Complete); + // + reversal.setPayAmt(getPayAmt().negate()); + reversal.setDiscountAmt(getDiscountAmt().negate()); + reversal.setWriteOffAmt(getWriteOffAmt().negate()); + reversal.setOverUnderAmt(getOverUnderAmt().negate()); + // + reversal.setIsAllocated(true); + reversal.setIsReconciled(false); + reversal.setIsOnline(false); + reversal.setIsApproved(true); + reversal.setR_PnRef(null); + reversal.setR_Result(null); + reversal.setR_RespMsg(null); + reversal.setR_AuthCode(null); + reversal.setR_Info(null); + reversal.setProcessing(false); + reversal.setOProcessing("N"); + reversal.setProcessed(false); + reversal.setPosted(false); + reversal.setDescription(getDescription()); + reversal.addDescription("{->" + getDocumentNo() + ")"); + //FR [ 1948157 ] + reversal.setReversal_ID(getC_Payment_ID()); + reversal.saveEx(get_TrxName()); + // Post Reversal + if (!reversal.processIt(DocAction.ACTION_Complete)) + { + m_processMsg = "Reversal ERROR: " + reversal.getProcessMsg(); + return null; + } + reversal.closeIt(); + reversal.setDocStatus(DOCSTATUS_Reversed); + reversal.setDocAction(DOCACTION_None); + reversal.saveEx(get_TrxName()); + + // Unlink & De-Allocate + deAllocate(accrual); + setIsAllocated (true); // the allocation below is overwritten + // Set Status + addDescription("(" + reversal.getDocumentNo() + "<-)"); + setDocStatus(DOCSTATUS_Reversed); + setDocAction(DOCACTION_None); + setProcessed(true); + //FR [ 1948157 ] + setReversal_ID(reversal.getC_Payment_ID()); + + StringBuilder info = new StringBuilder(reversal.getDocumentNo()); + + // Create automatic Allocation + MAllocationHdr alloc = new MAllocationHdr (getCtx(), false, + getDateTrx(), + getC_Currency_ID(), + Msg.translate(getCtx(), "C_Payment_ID") + ": " + reversal.getDocumentNo(), get_TrxName()); + alloc.setAD_Org_ID(getAD_Org_ID()); + alloc.setDateAcct(dateAcct); // dateAcct variable already take into account the accrual parameter + alloc.saveEx(get_TrxName()); + + // Original Allocation + MAllocationLine aLine = new MAllocationLine (alloc, getPayAmt(true), + Env.ZERO, Env.ZERO, Env.ZERO); + aLine.setDocInfo(getC_BPartner_ID(), 0, 0); + aLine.setPaymentInfo(getC_Payment_ID(), 0); + if (!aLine.save(get_TrxName())) + log.warning("Automatic allocation - line not saved"); + // Reversal Allocation + aLine = new MAllocationLine (alloc, reversal.getPayAmt(true), + Env.ZERO, Env.ZERO, Env.ZERO); + aLine.setDocInfo(reversal.getC_BPartner_ID(), 0, 0); + aLine.setPaymentInfo(reversal.getC_Payment_ID(), 0); + if (!aLine.save(get_TrxName())) + log.warning("Automatic allocation - reversal line not saved"); + + // added AdempiereException by zuhri + if (!alloc.processIt(DocAction.ACTION_Complete)) + throw new AdempiereException("Failed when processing document - " + alloc.getProcessMsg()); + // end added + alloc.saveEx(get_TrxName()); + // + info.append(" - @C_AllocationHdr_ID@: ").append(alloc.getDocumentNo()); + + // Update BPartner + if (getC_BPartner_ID() != 0) + { + MBPartner bp = new MBPartner (getCtx(), getC_BPartner_ID(), get_TrxName()); + bp.setTotalOpenBalance(); + bp.saveEx(get_TrxName()); + } + + return info; + } + + protected void deAllocate(boolean accrual) + { + // if (getC_Order_ID() != 0) setC_Order_ID(0); // IDEMPIERE-1764 + // if (getC_Invoice_ID() == 0) + // return; + // De-Allocate all + MAllocationHdr[] allocations = MAllocationHdr.getOfPayment(getCtx(), + getC_Payment_ID(), get_TrxName()); + if (log.isLoggable(Level.FINE)) log.fine("#" + allocations.length); + for (int i = 0; i < allocations.length; i++) + { + allocations[i].set_TrxName(get_TrxName()); + if (DOCSTATUS_Reversed.equals(allocations[i].getDocStatus()) + || DOCSTATUS_Voided.equals(allocations[i].getDocStatus())) + { + continue; + } + + if (accrual) + { + allocations[i].setDocAction(DocAction.ACTION_Reverse_Accrual); + if (!allocations[i].processIt(DocAction.ACTION_Reverse_Accrual)) + throw new AdempiereException(allocations[i].getProcessMsg()); + } + else + { + allocations[i].setDocAction(DocAction.ACTION_Reverse_Correct); + if (!allocations[i].processIt(DocAction.ACTION_Reverse_Correct)) + throw new AdempiereException(allocations[i].getProcessMsg()); + } + allocations[i].saveEx(); + } + + // Unlink (in case allocation did not get it) + if (getC_Invoice_ID() != 0) + { + // Invoice + String sql = "UPDATE C_Invoice " + + "SET C_Payment_ID = NULL, IsPaid='N' " + + "WHERE C_Invoice_ID=" + getC_Invoice_ID() + + " AND C_Payment_ID=" + getC_Payment_ID(); + int no = DB.executeUpdate(sql, get_TrxName()); + if (no != 0) + if (log.isLoggable(Level.FINE)) log.fine("Unlink Invoice #" + no); + // Order + sql = "UPDATE C_Order o " + + "SET C_Payment_ID = NULL " + + "WHERE EXISTS (SELECT * FROM C_Invoice i " + + "WHERE o.C_Order_ID=i.C_Order_ID AND i.C_Invoice_ID=" + getC_Invoice_ID() + ")" + + " AND C_Payment_ID=" + getC_Payment_ID(); + no = DB.executeUpdate(sql, get_TrxName()); + if (no != 0) + if (log.isLoggable(Level.FINE)) log.fine("Unlink Order #" + no); + } + // + setC_Invoice_ID(0); + setIsAllocated(false); + } // deallocate + } \ No newline at end of file diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MPaymentMethod.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MPaymentMethod.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MPaymentMethod.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MPaymentMethod.java index e1f92c2..f0d8f34 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MPaymentMethod.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MPaymentMethod.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.PreparedStatement; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MProductionConfirm.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MProductionConfirm.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MProductionConfirm.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MProductionConfirm.java index b98cbc5..1d6b031 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MProductionConfirm.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MProductionConfirm.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.io.File; import java.math.BigDecimal; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequisition.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequisition.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequisition.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequisition.java index 6db6be4..5b45dfa 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequisition.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequisition.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionLine.java index 9114a92..7fe92b3 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionLine.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionTrx.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionTrx.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionTrx.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionTrx.java index 733d318..6e77098 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionTrx.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionTrx.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.io.File; import java.math.BigDecimal; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionTrxLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionTrxLine.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionTrxLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionTrxLine.java index 838dceb..731333c 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionTrxLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequisitionTrxLine.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequsitionTax.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequsitionTax.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequsitionTax.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequsitionTax.java index 323d404..b7de265 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_MRequsitionTax.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_MRequsitionTax.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.math.RoundingMode; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_PPO.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_PPO.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_PPO.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_PPO.java index 3e322f1..71d65d8 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_PPO.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_PPO.java @@ -1,330 +1,330 @@ -package andromedia.midsuit.model; - -import java.io.File; -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.logging.Level; - -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.MInventory; -import org.compiere.model.MInventoryLine; -import org.compiere.model.MProduct; -import org.compiere.model.Query; -import org.compiere.process.DocAction; -import org.compiere.process.DocOptions; -import org.compiere.process.DocumentEngine; -import org.compiere.util.DB; -import org.compiere.util.Env; - -public class MID_PPO extends X_ps_ppo implements DocAction, DocOptions{ - - public MID_PPO(Properties ctx, ResultSet rs, String trxName) { - super(ctx, rs, trxName); - // TODO Auto-generated constructor stub - } - - public MID_PPO(Properties ctx, int ps_ppo_ID, String trxName) { - super(ctx, ps_ppo_ID, trxName); - // TODO Auto-generated constructor stub - } - +package balinusa.midsuit.model; + +import java.io.File; +import java.math.BigDecimal; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; +import java.util.logging.Level; + +import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MInventory; +import org.compiere.model.MInventoryLine; +import org.compiere.model.MProduct; +import org.compiere.model.Query; +import org.compiere.process.DocAction; +import org.compiere.process.DocOptions; +import org.compiere.process.DocumentEngine; +import org.compiere.util.DB; +import org.compiere.util.Env; + +public class MID_PPO extends X_ps_ppo implements DocAction, DocOptions{ + + public MID_PPO(Properties ctx, ResultSet rs, String trxName) { + super(ctx, rs, trxName); + // TODO Auto-generated constructor stub + } + + public MID_PPO(Properties ctx, int ps_ppo_ID, String trxName) { + super(ctx, ps_ppo_ID, trxName); + // TODO Auto-generated constructor stub + } + public static MID_PPO get (Properties ctx, int ps_ppo_ID, String trxName) { if(ps_ppo_ID <=0) return null; return new MID_PPO(ctx, ps_ppo_ID, trxName); - } - /** - * - */ - private static final long serialVersionUID = -8492664206425966288L; - - String processMsg = ""; - @Override - public boolean processIt(String action) throws Exception { - log.warning("Processing Action=" + action + " - DocStatus=" + getDocStatus() + " - DocAction=" + getDocAction()); - DocumentEngine engine = new DocumentEngine(this, getDocStatus()); - return engine.processIt(action, getDocAction()); - } - - @Override - public boolean unlockIt() { - return true; - } - - @Override - public boolean invalidateIt() { - return true; - } - - @Override - public String prepareIt() { - setC_DocType_ID(getC_DocTypeTarget_ID()); - if(getDocAction().equals(DocAction.ACTION_Void)) - return DocAction.STATUS_InProgress; - List lines = new Query(getCtx(), MID_PPOLine.Table_Name, "ps_ppo_ID =? ", get_TrxName()) - .setParameters(new Object[] { getps_ppo_ID() }) - .setOnlyActiveRecords(true) - .list(); - for(MID_PPOLine line : lines) { - /** - * For EDII Only - */ - if(line.getQtyUsed().signum()==0) - throw new AdempiereException("Qty Ordered = 0"); - } - - int receiptDocType = DB.getSQLValueEx(get_TrxName(), " SELECT C_DocType_ID FROM C_DocType WHERE Name like ? AND AD_Client_ID =?", new Object[] {"%Inventory Receipt%", getAD_Client_ID()}); - int issueDocType = DB.getSQLValueEx(get_TrxName(), " SELECT C_DocType_ID FROM C_DocType WHERE Name like ? AND AD_Client_ID =?", new Object[] {"%Inventory Issue%", getAD_Client_ID()}); - int dispocalDocType = DB.getSQLValueEx(get_TrxName(), " SELECT C_DocType_ID FROM C_DocType WHERE Name like ? AND AD_Client_ID =?", new Object[] {"%Waste Disposal%", getAD_Client_ID()}); - int wasteDocType = DB.getSQLValueEx(get_TrxName(), " SELECT C_DocType_ID FROM C_DocType WHERE Name like ? AND AD_Client_ID =?", new Object[] {"%Waste Receipt%", getAD_Client_ID()}); - int countReceipt = new Query(getCtx(), MInventory.Table_Name, "DocStatus IN (?) AND C_DocType_ID IN (?) AND ps_ppo_ID =?", get_TrxName()) - .setParameters(new Object[] {DocAction.STATUS_Completed, receiptDocType, getps_ppo_ID()}) - .count(); - int countIssue = new Query(getCtx(), MInventory.Table_Name, "DocStatus IN (?) AND C_DocType_ID IN (?) AND ps_ppo_ID =?", get_TrxName()) - .setParameters(new Object[] {DocAction.STATUS_Completed, issueDocType, getps_ppo_ID()}) - .count(); - int countDisposal = new Query(getCtx(), MInventory.Table_Name, "DocStatus IN (?) AND C_DocType_ID IN (?) AND ps_ppo_ID =?", get_TrxName()) - .setParameters(new Object[] {DocAction.STATUS_Completed, dispocalDocType, getps_ppo_ID()}) - .count(); - int countWaste = new Query(getCtx(), MInventory.Table_Name, "DocStatus IN (?) AND C_DocType_ID IN (?) AND ps_ppo_ID =?", get_TrxName()) - .setParameters(new Object[] {DocAction.STATUS_Completed, wasteDocType, getps_ppo_ID()}) - .count(); - - - if(countReceipt<=0 && countIssue<=0) { - if(countDisposal<=0 && countWaste<=0) - throw new AdempiereException("Pastikan ada Issue/Receipt yang diproses !!!"); - } - - - return DocAction.STATUS_InProgress; - } - - @Override - public boolean approveIt() { - return true; - } - - @Override - public boolean rejectIt() { - return true; - } - - @Override - public String completeIt() { - /** - * EDII Only - */ - List lines = new Query(getCtx(), MInventoryLine.Table_Name, "M_InventoryLine.ps_ppo_ID =? AND i.DocStatus IN (?)", get_TrxName()) - .addJoinClause(" JOIN M_Inventory i ON i.M_Inventory_ID=M_InventoryLine.M_Inventory_ID ") - .setOnlyActiveRecords(true) - .setParameters(new Object[] { getps_ppo_ID(),DocAction.STATUS_Completed }) - .list(); - DB.executeUpdateEx(" UPDATE PS_PPOLine SET QtyUsed=0 WHERE PS_PPO_ID =? ", new Object[] { getps_ppo_ID() }, get_TrxName() ); - for(MInventoryLine line : lines) { - int PS_PPOLine_ID = line.get_ValueAsInt("ps_ppoline_ID"); - if(PS_PPOLine_ID >0) { - MID_PPOLine ppoLine = new MID_PPOLine(getCtx(), line.get_ValueAsInt("ps_ppoline_ID"), get_TrxName()); - ppoLine.setQtyUsed(ppoLine.getQtyUsed().add((BigDecimal) line.get_Value("QtyEntered"))); - ppoLine.saveEx(); - }else { - boolean isEndProduct = line.getQtyInternalUse().signum()>0 ? true : false; - int existingPPOLineID = new Query(getCtx(), MID_PPOLine.Table_Name, "M_Product_ID =? AND ps_ppo_ID =? AND isEndProduct=?", get_TrxName()) - .setParameters(new Object[] { line.getM_Product_ID(), line.get_ValueAsInt("ps_ppo_ID"), isEndProduct }) - .firstId(); - if(existingPPOLineID >0) { - MID_PPOLine ppoLine = new MID_PPOLine(getCtx(), existingPPOLineID, get_TrxName()); - ppoLine.setQtyUsed(ppoLine.getQtyUsed().add((BigDecimal) line.get_Value("QtyEntered"))); - ppoLine.saveEx(); - DB.executeUpdateEx("UPDATE M_InventoryLine SET ps_ppoline_ID =? WHERE M_InventoryLine_ID =?", new Object[] { existingPPOLineID, line.getM_InventoryLine_ID() }, get_TrxName()); - } - else { - int lineNo = DB.getSQLValueEx(get_TrxName(), "SELECT COALESCE(MAX(lineno),0)+10 FROM PS_PPOLine WHERE PS_PPO_ID =?", new Object[] {getps_ppo_ID()}); - int ppoLine = createLines(line.getM_Product_ID(), line.getQtyInternalUse().abs(), line.getQtyInternalUse().signum()<0 ?true:false, lineNo); - DB.executeUpdateEx("UPDATE M_InventoryLine SET ps_ppoline_ID =? WHERE M_InventoryLine_ID =?", new Object[] { ppoLine, line.getM_InventoryLine_ID() }, get_TrxName()); - } - } - } - setDateFinish(new Timestamp(System.currentTimeMillis())); - setProcessed(true); - return DocAction.STATUS_Completed; - } - - @Override - public boolean voidIt() { - int count = new Query(getCtx(), MInventory.Table_Name, " ps_ppo_ID =? AND DocStatus NOT IN ('RE','VO')", get_TrxName()) - .setParameters(new Object[] { getps_ppo_ID() }) - .setOnlyActiveRecords(true) - .count(); - if(count>0){ - processMsg = "Reverse All Inventory Issue and Receipt before Void !!!"; - return false; - } - setDocAction(DocAction.ACTION_None); - setDocStatus(DocAction.STATUS_Voided); - setProcessed(true); - return true; - } - - @Override - public boolean closeIt() { - return true; - } - - @Override - public boolean reverseCorrectIt() { - return true; - } - - @Override - public boolean reverseAccrualIt() { - return true; - } - - @Override - public boolean reActivateIt() { - setDocAction(DocAction.ACTION_Complete); - setDocStatus(DocAction.STATUS_InProgress); - setProcessed(false); - return true; - } - - @Override - public String getSummary() { - return null; - } - - @Override - public String getDocumentInfo() { - return null; - } - - @Override - public File createPDF() { - return null; - } - - @Override - public String getProcessMsg() { - return processMsg; - } - - @Override - public int getDoc_User_ID() { - return 0; - } - - @Override - public BigDecimal getApprovalAmt() { - return BigDecimal.ONE; - } - @Override - public int getC_Currency_ID() { - // TODO Auto-generated method stub - return 0; - } - - public void deleteLines() { - String sql = "DELETE FROM PS_PPOLine WHERE PS_PPO_ID =?"; - DB.executeUpdateEx(sql, new Object[] { getps_ppo_ID() }, get_TrxName()); - } - - public int createLines() { - int retValue = 0; - - createLines(getM_Product_ID(), getQtyOrdered(), true, retValue+1); - retValue++; - - String sql = "SELECT M_ProductBom_ID, BOMQty " + " FROM M_Product_BOM" - + " WHERE M_Product_ID=" + getM_Product_ID() + " AND IsActive='Y' ORDER BY Line"; - - PreparedStatement pstmt = DB.prepareStatement(sql, get_TrxName()); - ResultSet rs = null; - try { - rs = pstmt.executeQuery(); - while(rs.next()) { - createLines(rs.getInt(1), rs.getBigDecimal(2).multiply(getQtyOrdered()), false, retValue+1); - retValue++; - } - } catch (SQLException e) { - log.severe("Failed to create Lines"); - }finally { - DB.close(rs,pstmt); - } - return retValue; - } - - private int createLines(int M_Product_ID, BigDecimal qtyOrdered, boolean isEndProduct, int lineNo) { - MID_PPOLine line = new MID_PPOLine(getCtx(), 0, get_TrxName()); - line.setps_ppo_ID(getps_ppo_ID()); - line.setLineNo(lineNo); - line.setAD_Org_ID(getAD_Org_ID()); - line.setIsEndProduct(isEndProduct); - line.setM_Product_ID(M_Product_ID); - line.setQtyUsed(qtyOrdered); - line.saveEx(); - - return line.get_ID(); - } - - @Override - public int customizeValidActions(String docStatus, Object processing, String orderType, String isSOTrx, - int AD_Table_ID, String[] docAction, String[] options, int index) { - if (options == null) - throw new IllegalArgumentException("Option array parameter is null"); - if (docAction == null) - throw new IllegalArgumentException("Doc action array parameter is null"); - for (int i = 0; i < options.length; i++) { - options[i] = null; - } - index = 0; - if (docStatus.equals(DocumentEngine.STATUS_Drafted) || docStatus.equals(DocumentEngine.STATUS_Invalid)) { - options[index++] = DocumentEngine.ACTION_Complete; - options[index++] = DocumentEngine.ACTION_Prepare; - options[index++] = DocumentEngine.ACTION_Void; - } else if (docStatus.equals(DocumentEngine.STATUS_Completed)) { - options[index++] = DocumentEngine.ACTION_Close; - options[index++] = DocumentEngine.ACTION_ReActivate; - } else if (docStatus.equals(DocumentEngine.STATUS_InProgress)) - options[index++] = DocumentEngine.ACTION_Complete; - - return index; - } - - // get lines - public List getLines() { - String sql = "SELECT ps_ppoline_id FROM ps_ppoline WHERE ps_ppo_id = ? AND IsActive = 'Y'"; - PreparedStatement pstmt = null; - ResultSet rs = null; - List list = new ArrayList<>(); - - try { - pstmt = DB.prepareStatement(sql, get_TrxName()); - pstmt.setInt(1, getps_ppo_ID()); // Gunakan parameter binding untuk menghindari SQL Injection - rs = pstmt.executeQuery(); - - while (rs.next()) { - int lineID = rs.getInt("ps_ppoline_id"); - MID_PPOLine line = new MID_PPOLine(getCtx(), lineID, get_TrxName()); - list.add(line); - } - - log.fine("Found " + list.size() + " Lines for ps_ppo_ID=" + getps_ppo_ID()); - - } catch (SQLException e) { - log.log(Level.SEVERE, "Failed to get Lines for ps_ppo_ID=" + getps_ppo_ID(), e); - throw new AdempiereException(e); - } finally { - DB.close(rs, pstmt); - } - - return list; - } - -} + } + /** + * + */ + private static final long serialVersionUID = -8492664206425966288L; + + String processMsg = ""; + @Override + public boolean processIt(String action) throws Exception { + log.warning("Processing Action=" + action + " - DocStatus=" + getDocStatus() + " - DocAction=" + getDocAction()); + DocumentEngine engine = new DocumentEngine(this, getDocStatus()); + return engine.processIt(action, getDocAction()); + } + + @Override + public boolean unlockIt() { + return true; + } + + @Override + public boolean invalidateIt() { + return true; + } + + @Override + public String prepareIt() { + setC_DocType_ID(getC_DocTypeTarget_ID()); + if(getDocAction().equals(DocAction.ACTION_Void)) + return DocAction.STATUS_InProgress; + List lines = new Query(getCtx(), MID_PPOLine.Table_Name, "ps_ppo_ID =? ", get_TrxName()) + .setParameters(new Object[] { getps_ppo_ID() }) + .setOnlyActiveRecords(true) + .list(); + for(MID_PPOLine line : lines) { + /** + * For EDII Only + */ + if(line.getQtyUsed().signum()==0) + throw new AdempiereException("Qty Ordered = 0"); + } + + int receiptDocType = DB.getSQLValueEx(get_TrxName(), " SELECT C_DocType_ID FROM C_DocType WHERE Name like ? AND AD_Client_ID =?", new Object[] {"%Inventory Receipt%", getAD_Client_ID()}); + int issueDocType = DB.getSQLValueEx(get_TrxName(), " SELECT C_DocType_ID FROM C_DocType WHERE Name like ? AND AD_Client_ID =?", new Object[] {"%Inventory Issue%", getAD_Client_ID()}); + int dispocalDocType = DB.getSQLValueEx(get_TrxName(), " SELECT C_DocType_ID FROM C_DocType WHERE Name like ? AND AD_Client_ID =?", new Object[] {"%Waste Disposal%", getAD_Client_ID()}); + int wasteDocType = DB.getSQLValueEx(get_TrxName(), " SELECT C_DocType_ID FROM C_DocType WHERE Name like ? AND AD_Client_ID =?", new Object[] {"%Waste Receipt%", getAD_Client_ID()}); + int countReceipt = new Query(getCtx(), MInventory.Table_Name, "DocStatus IN (?) AND C_DocType_ID IN (?) AND ps_ppo_ID =?", get_TrxName()) + .setParameters(new Object[] {DocAction.STATUS_Completed, receiptDocType, getps_ppo_ID()}) + .count(); + int countIssue = new Query(getCtx(), MInventory.Table_Name, "DocStatus IN (?) AND C_DocType_ID IN (?) AND ps_ppo_ID =?", get_TrxName()) + .setParameters(new Object[] {DocAction.STATUS_Completed, issueDocType, getps_ppo_ID()}) + .count(); + int countDisposal = new Query(getCtx(), MInventory.Table_Name, "DocStatus IN (?) AND C_DocType_ID IN (?) AND ps_ppo_ID =?", get_TrxName()) + .setParameters(new Object[] {DocAction.STATUS_Completed, dispocalDocType, getps_ppo_ID()}) + .count(); + int countWaste = new Query(getCtx(), MInventory.Table_Name, "DocStatus IN (?) AND C_DocType_ID IN (?) AND ps_ppo_ID =?", get_TrxName()) + .setParameters(new Object[] {DocAction.STATUS_Completed, wasteDocType, getps_ppo_ID()}) + .count(); + + + if(countReceipt<=0 && countIssue<=0) { + if(countDisposal<=0 && countWaste<=0) + throw new AdempiereException("Pastikan ada Issue/Receipt yang diproses !!!"); + } + + + return DocAction.STATUS_InProgress; + } + + @Override + public boolean approveIt() { + return true; + } + + @Override + public boolean rejectIt() { + return true; + } + + @Override + public String completeIt() { + /** + * EDII Only + */ + List lines = new Query(getCtx(), MInventoryLine.Table_Name, "M_InventoryLine.ps_ppo_ID =? AND i.DocStatus IN (?)", get_TrxName()) + .addJoinClause(" JOIN M_Inventory i ON i.M_Inventory_ID=M_InventoryLine.M_Inventory_ID ") + .setOnlyActiveRecords(true) + .setParameters(new Object[] { getps_ppo_ID(),DocAction.STATUS_Completed }) + .list(); + DB.executeUpdateEx(" UPDATE PS_PPOLine SET QtyUsed=0 WHERE PS_PPO_ID =? ", new Object[] { getps_ppo_ID() }, get_TrxName() ); + for(MInventoryLine line : lines) { + int PS_PPOLine_ID = line.get_ValueAsInt("ps_ppoline_ID"); + if(PS_PPOLine_ID >0) { + MID_PPOLine ppoLine = new MID_PPOLine(getCtx(), line.get_ValueAsInt("ps_ppoline_ID"), get_TrxName()); + ppoLine.setQtyUsed(ppoLine.getQtyUsed().add((BigDecimal) line.get_Value("QtyEntered"))); + ppoLine.saveEx(); + }else { + boolean isEndProduct = line.getQtyInternalUse().signum()>0 ? true : false; + int existingPPOLineID = new Query(getCtx(), MID_PPOLine.Table_Name, "M_Product_ID =? AND ps_ppo_ID =? AND isEndProduct=?", get_TrxName()) + .setParameters(new Object[] { line.getM_Product_ID(), line.get_ValueAsInt("ps_ppo_ID"), isEndProduct }) + .firstId(); + if(existingPPOLineID >0) { + MID_PPOLine ppoLine = new MID_PPOLine(getCtx(), existingPPOLineID, get_TrxName()); + ppoLine.setQtyUsed(ppoLine.getQtyUsed().add((BigDecimal) line.get_Value("QtyEntered"))); + ppoLine.saveEx(); + DB.executeUpdateEx("UPDATE M_InventoryLine SET ps_ppoline_ID =? WHERE M_InventoryLine_ID =?", new Object[] { existingPPOLineID, line.getM_InventoryLine_ID() }, get_TrxName()); + } + else { + int lineNo = DB.getSQLValueEx(get_TrxName(), "SELECT COALESCE(MAX(lineno),0)+10 FROM PS_PPOLine WHERE PS_PPO_ID =?", new Object[] {getps_ppo_ID()}); + int ppoLine = createLines(line.getM_Product_ID(), line.getQtyInternalUse().abs(), line.getQtyInternalUse().signum()<0 ?true:false, lineNo); + DB.executeUpdateEx("UPDATE M_InventoryLine SET ps_ppoline_ID =? WHERE M_InventoryLine_ID =?", new Object[] { ppoLine, line.getM_InventoryLine_ID() }, get_TrxName()); + } + } + } + setDateFinish(new Timestamp(System.currentTimeMillis())); + setProcessed(true); + return DocAction.STATUS_Completed; + } + + @Override + public boolean voidIt() { + int count = new Query(getCtx(), MInventory.Table_Name, " ps_ppo_ID =? AND DocStatus NOT IN ('RE','VO')", get_TrxName()) + .setParameters(new Object[] { getps_ppo_ID() }) + .setOnlyActiveRecords(true) + .count(); + if(count>0){ + processMsg = "Reverse All Inventory Issue and Receipt before Void !!!"; + return false; + } + setDocAction(DocAction.ACTION_None); + setDocStatus(DocAction.STATUS_Voided); + setProcessed(true); + return true; + } + + @Override + public boolean closeIt() { + return true; + } + + @Override + public boolean reverseCorrectIt() { + return true; + } + + @Override + public boolean reverseAccrualIt() { + return true; + } + + @Override + public boolean reActivateIt() { + setDocAction(DocAction.ACTION_Complete); + setDocStatus(DocAction.STATUS_InProgress); + setProcessed(false); + return true; + } + + @Override + public String getSummary() { + return null; + } + + @Override + public String getDocumentInfo() { + return null; + } + + @Override + public File createPDF() { + return null; + } + + @Override + public String getProcessMsg() { + return processMsg; + } + + @Override + public int getDoc_User_ID() { + return 0; + } + + @Override + public BigDecimal getApprovalAmt() { + return BigDecimal.ONE; + } + @Override + public int getC_Currency_ID() { + // TODO Auto-generated method stub + return 0; + } + + public void deleteLines() { + String sql = "DELETE FROM PS_PPOLine WHERE PS_PPO_ID =?"; + DB.executeUpdateEx(sql, new Object[] { getps_ppo_ID() }, get_TrxName()); + } + + public int createLines() { + int retValue = 0; + + createLines(getM_Product_ID(), getQtyOrdered(), true, retValue+1); + retValue++; + + String sql = "SELECT M_ProductBom_ID, BOMQty " + " FROM M_Product_BOM" + + " WHERE M_Product_ID=" + getM_Product_ID() + " AND IsActive='Y' ORDER BY Line"; + + PreparedStatement pstmt = DB.prepareStatement(sql, get_TrxName()); + ResultSet rs = null; + try { + rs = pstmt.executeQuery(); + while(rs.next()) { + createLines(rs.getInt(1), rs.getBigDecimal(2).multiply(getQtyOrdered()), false, retValue+1); + retValue++; + } + } catch (SQLException e) { + log.severe("Failed to create Lines"); + }finally { + DB.close(rs,pstmt); + } + return retValue; + } + + private int createLines(int M_Product_ID, BigDecimal qtyOrdered, boolean isEndProduct, int lineNo) { + MID_PPOLine line = new MID_PPOLine(getCtx(), 0, get_TrxName()); + line.setps_ppo_ID(getps_ppo_ID()); + line.setLineNo(lineNo); + line.setAD_Org_ID(getAD_Org_ID()); + line.setIsEndProduct(isEndProduct); + line.setM_Product_ID(M_Product_ID); + line.setQtyUsed(qtyOrdered); + line.saveEx(); + + return line.get_ID(); + } + + @Override + public int customizeValidActions(String docStatus, Object processing, String orderType, String isSOTrx, + int AD_Table_ID, String[] docAction, String[] options, int index) { + if (options == null) + throw new IllegalArgumentException("Option array parameter is null"); + if (docAction == null) + throw new IllegalArgumentException("Doc action array parameter is null"); + for (int i = 0; i < options.length; i++) { + options[i] = null; + } + index = 0; + if (docStatus.equals(DocumentEngine.STATUS_Drafted) || docStatus.equals(DocumentEngine.STATUS_Invalid)) { + options[index++] = DocumentEngine.ACTION_Complete; + options[index++] = DocumentEngine.ACTION_Prepare; + options[index++] = DocumentEngine.ACTION_Void; + } else if (docStatus.equals(DocumentEngine.STATUS_Completed)) { + options[index++] = DocumentEngine.ACTION_Close; + options[index++] = DocumentEngine.ACTION_ReActivate; + } else if (docStatus.equals(DocumentEngine.STATUS_InProgress)) + options[index++] = DocumentEngine.ACTION_Complete; + + return index; + } + + // get lines + public List getLines() { + String sql = "SELECT ps_ppoline_id FROM ps_ppoline WHERE ps_ppo_id = ? AND IsActive = 'Y'"; + PreparedStatement pstmt = null; + ResultSet rs = null; + List list = new ArrayList<>(); + + try { + pstmt = DB.prepareStatement(sql, get_TrxName()); + pstmt.setInt(1, getps_ppo_ID()); // Gunakan parameter binding untuk menghindari SQL Injection + rs = pstmt.executeQuery(); + + while (rs.next()) { + int lineID = rs.getInt("ps_ppoline_id"); + MID_PPOLine line = new MID_PPOLine(getCtx(), lineID, get_TrxName()); + list.add(line); + } + + log.fine("Found " + list.size() + " Lines for ps_ppo_ID=" + getps_ppo_ID()); + + } catch (SQLException e) { + log.log(Level.SEVERE, "Failed to get Lines for ps_ppo_ID=" + getps_ppo_ID(), e); + throw new AdempiereException(e); + } finally { + DB.close(rs, pstmt); + } + + return list; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_PPOLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_PPOLine.java similarity index 93% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_PPOLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_PPOLine.java index 68fde99..8930673 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_PPOLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_PPOLine.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_Parameter.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_Parameter.java similarity index 89% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_Parameter.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_Parameter.java index 637ec4a..5070a3e 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_Parameter.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_Parameter.java @@ -1,23 +1,23 @@ -package andromedia.midsuit.model; - -import java.sql.ResultSet; -import java.util.Properties; - -public class MID_Parameter extends X_MID_Parameter { - - /** - * - */ - private static final long serialVersionUID = -2785109173056371758L; - - public MID_Parameter(Properties ctx, int MID_Parameter_ID, String trxName) { - super(ctx, MID_Parameter_ID, trxName); - // TODO Auto-generated constructor stub - } - - public MID_Parameter(Properties ctx, ResultSet rs, String trxName) { - super(ctx, rs, trxName); - // TODO Auto-generated constructor stub - } - -} +package balinusa.midsuit.model; + +import java.sql.ResultSet; +import java.util.Properties; + +public class MID_Parameter extends X_MID_Parameter { + + /** + * + */ + private static final long serialVersionUID = -2785109173056371758L; + + public MID_Parameter(Properties ctx, int MID_Parameter_ID, String trxName) { + super(ctx, MID_Parameter_ID, trxName); + // TODO Auto-generated constructor stub + } + + public MID_Parameter(Properties ctx, ResultSet rs, String trxName) { + super(ctx, rs, trxName); + // TODO Auto-generated constructor stub + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_UnrealizedRate.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_UnrealizedRate.java similarity index 93% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_UnrealizedRate.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_UnrealizedRate.java index d14a3fb..3479e32 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_UnrealizedRate.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_UnrealizedRate.java @@ -1,40 +1,40 @@ -package andromedia.midsuit.model; - -import java.sql.ResultSet; -import java.util.Properties; - -import org.compiere.util.DB; - -public class MID_UnrealizedRate extends X_MID_UnrealizedRate{ - /** - * - */ - /** Process Message */ - protected String m_processMsg = null; - private static final long serialVersionUID = -7992566926746800177L; - - public MID_UnrealizedRate(Properties ctx, int MID_UnrealizedRate_ID, String trxName) { - super(ctx, MID_UnrealizedRate_ID, trxName); - // TODO Auto-generated constructor stub - } - public MID_UnrealizedRate(Properties ctx, ResultSet rs, String trxName) { - super(ctx, rs, trxName); - // TODO Auto-generated constructor stub - } - - @Override - protected boolean beforeSave(boolean newRecord) { - if(newRecord){ - int processedPeriod = DB.getSQLValueEx(get_TrxName(), "SELECT COUNT(*) FROM MID_UnrealizedRate WHERE C_Period_ID =? ", new Object[] { getC_Period_ID()}); - if(processedPeriod > 0){ - m_processMsg = "Data for this period already exists !!!"; - return false; - } - } - return super.beforeSave(newRecord); - } - - public String getProcessMsg(){ - return m_processMsg; - } -} +package balinusa.midsuit.model; + +import java.sql.ResultSet; +import java.util.Properties; + +import org.compiere.util.DB; + +public class MID_UnrealizedRate extends X_MID_UnrealizedRate{ + /** + * + */ + /** Process Message */ + protected String m_processMsg = null; + private static final long serialVersionUID = -7992566926746800177L; + + public MID_UnrealizedRate(Properties ctx, int MID_UnrealizedRate_ID, String trxName) { + super(ctx, MID_UnrealizedRate_ID, trxName); + // TODO Auto-generated constructor stub + } + public MID_UnrealizedRate(Properties ctx, ResultSet rs, String trxName) { + super(ctx, rs, trxName); + // TODO Auto-generated constructor stub + } + + @Override + protected boolean beforeSave(boolean newRecord) { + if(newRecord){ + int processedPeriod = DB.getSQLValueEx(get_TrxName(), "SELECT COUNT(*) FROM MID_UnrealizedRate WHERE C_Period_ID =? ", new Object[] { getC_Period_ID()}); + if(processedPeriod > 0){ + m_processMsg = "Data for this period already exists !!!"; + return false; + } + } + return super.beforeSave(newRecord); + } + + public String getProcessMsg(){ + return m_processMsg; + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_UnrealizedRateLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_UnrealizedRateLine.java similarity index 91% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MID_UnrealizedRateLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MID_UnrealizedRateLine.java index 8bf5c15..6c413c6 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MID_UnrealizedRateLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MID_UnrealizedRateLine.java @@ -1,27 +1,27 @@ -package andromedia.midsuit.model; - -import java.sql.ResultSet; - -import java.util.Properties; - -public class MID_UnrealizedRateLine extends X_MID_UnrealizedRateLine{ - /** - * - */ - private static final long serialVersionUID = -7992566926746800177L; - public MID_UnrealizedRateLine(Properties ctx, int MID_UnrealizedRate_ID, String trxName) { - super(ctx, MID_UnrealizedRate_ID, trxName); - // TODO Auto-generated constructor stub - } - public MID_UnrealizedRateLine(Properties ctx, ResultSet rs, String trxName) { - super(ctx, rs, trxName); - // TODO Auto-generated constructor stub - } - - @Override - protected boolean beforeDelete() { - log.saveError("Error", "Line cannot be deleted !!!"); - return false; - } - -} +package balinusa.midsuit.model; + +import java.sql.ResultSet; + +import java.util.Properties; + +public class MID_UnrealizedRateLine extends X_MID_UnrealizedRateLine{ + /** + * + */ + private static final long serialVersionUID = -7992566926746800177L; + public MID_UnrealizedRateLine(Properties ctx, int MID_UnrealizedRate_ID, String trxName) { + super(ctx, MID_UnrealizedRate_ID, trxName); + // TODO Auto-generated constructor stub + } + public MID_UnrealizedRateLine(Properties ctx, ResultSet rs, String trxName) { + super(ctx, rs, trxName); + // TODO Auto-generated constructor stub + } + + @Override + protected boolean beforeDelete() { + log.saveError("Error", "Line cannot be deleted !!!"); + return false; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MPayment.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MPayment.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MPayment.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MPayment.java index c4779dc..d7e44b5 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MPayment.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MPayment.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/MWarehouse.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/MWarehouse.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/MWarehouse.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/MWarehouse.java index beff023..828415a 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/MWarehouse.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/MWarehouse.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.util.Properties; import org.compiere.util.DB; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_C_BillingList.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_C_BillingList.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_C_BillingList.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_C_BillingList.java index 400e462..cf983d8 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_C_BillingList.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_C_BillingList.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_C_BillingListLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_C_BillingListLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_C_BillingListLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_C_BillingListLine.java index 32b586c..2606f49 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_C_BillingListLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_C_BillingListLine.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/balinusa.midsuit.project/src/balinusa/midsuit/model/X_C_Location.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_C_Location.java new file mode 100644 index 0000000..8b6c53d --- /dev/null +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_C_Location.java @@ -0,0 +1,5 @@ +package balinusa.midsuit.model; + +public class X_C_Location { + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_C_OrderLineMA.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_C_OrderLineMA.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_C_OrderLineMA.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_C_OrderLineMA.java index 7d46348..3b4e472 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_C_OrderLineMA.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_C_OrderLineMA.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_DD_Order.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_DD_Order.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_DD_Order.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_DD_Order.java index 2f618ea..66b56f6 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_DD_Order.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_DD_Order.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_DD_OrderLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_DD_OrderLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_DD_OrderLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_DD_OrderLine.java index 82df137..0cc5f76 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_DD_OrderLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_DD_OrderLine.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_AJUDocumentType.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_AJUDocumentType.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_AJUDocumentType.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_AJUDocumentType.java index 3f6e1f3..a840b07 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_AJUDocumentType.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_AJUDocumentType.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_Analysis.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_Analysis.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_Analysis.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_Analysis.java index 705b4d0..6581ecc 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_Analysis.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_Analysis.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_AnalysisLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_AnalysisLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_AnalysisLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_AnalysisLine.java index d9872fe..5e416aa 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_AnalysisLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_AnalysisLine.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_AnalysisPro.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_AnalysisPro.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_AnalysisPro.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_AnalysisPro.java index 2aec3fa..3713026 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_AnalysisPro.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_AnalysisPro.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_Parameter.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_Parameter.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_Parameter.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_Parameter.java index f22e377..72d6fa3 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_Parameter.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_Parameter.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_Requisition.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_Requisition.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_Requisition.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_Requisition.java index cce798e..b98d9b3 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_Requisition.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_Requisition.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_RequisitionLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_RequisitionLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_RequisitionLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_RequisitionLine.java index 1777e4e..72cd3dd 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_RequisitionLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_RequisitionLine.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UnrealizedRate.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UnrealizedRate.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UnrealizedRate.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UnrealizedRate.java index ee1f196..59d1d86 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UnrealizedRate.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UnrealizedRate.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UnrealizedRateLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UnrealizedRateLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UnrealizedRateLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UnrealizedRateLine.java index d1e10a5..1e9b3e6 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UnrealizedRateLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UnrealizedRateLine.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadPEB.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadPEB.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadPEB.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadPEB.java index fb0e0f4..c4c75b6 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadPEB.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadPEB.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadPEBLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadPEBLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadPEBLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadPEBLine.java index 6dfe315..3eaca88 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadPEBLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadPEBLine.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPB.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPB.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPB.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPB.java index 22883a5..4e5d8cc 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPB.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPB.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPBLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPBLine.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPBLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPBLine.java index a3405a3..02a2ed4 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPBLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPBLine.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPBLineDet.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPBLineDet.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPBLineDet.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPBLineDet.java index 51259e7..030e765 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPBLineDet.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_MID_UploadTPBLineDet.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_PaymentMethod.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_PaymentMethod.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_PaymentMethod.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_PaymentMethod.java index 6e26fdd..df2b25e 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_PaymentMethod.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_PaymentMethod.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_Production.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_Production.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_Production.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_Production.java index 27040f6..a31162c 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_Production.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_Production.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_ProductionConfirm.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_ProductionConfirm.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_ProductionConfirm.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_ProductionConfirm.java index 102a24b..da847dd 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_ProductionConfirm.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_ProductionConfirm.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_RMAMA.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_RMAMA.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_RMAMA.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_RMAMA.java index d1cc141..c79f239 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_RMAMA.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_RMAMA.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_RequisitionTax.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_RequisitionTax.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_RequisitionTax.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_RequisitionTax.java index 866bbaa..26cd475 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_RequisitionTax.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_RequisitionTax.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.PreparedStatement; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_Warehouse.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_Warehouse.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_Warehouse.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_Warehouse.java index 9263e73..9f659a4 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_M_Warehouse.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_M_Warehouse.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_T_Aging.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_T_Aging.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_T_Aging.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_T_Aging.java index 16a87b6..4baed72 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_T_Aging.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_T_Aging.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_entitas.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_entitas.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_entitas.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_entitas.java index 70575d7..f17e565 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_entitas.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_entitas.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_order.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_order.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_order.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_order.java index ef7fb64..3dfdf08 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_order.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_order.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_orderline.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_orderline.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_orderline.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_orderline.java index 757c350..14c2f33 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_orderline.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_orderline.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_upload.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_upload.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_upload.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_upload.java index 83a2377..ba8ac6a 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_upload.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_mid_ceisa_upload.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_ps_ppo.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_ps_ppo.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_ps_ppo.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_ps_ppo.java index cd1c100..3dcd5d6 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_ps_ppo.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_ps_ppo.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_ps_ppoline.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_ps_ppoline.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_ps_ppoline.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_ps_ppoline.java index 8e6a6c9..1e9d510 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_ps_ppoline.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_ps_ppoline.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.math.BigDecimal; import java.sql.ResultSet; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_zpos_Cashier.java b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_zpos_Cashier.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/model/X_zpos_Cashier.java rename to balinusa.midsuit.project/src/balinusa/midsuit/model/X_zpos_Cashier.java index a4d50b1..da8eaaf 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/model/X_zpos_Cashier.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/model/X_zpos_Cashier.java @@ -15,7 +15,7 @@ * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ /** Generated Model - DO NOT CHANGE */ -package andromedia.midsuit.model; +package balinusa.midsuit.model; import java.sql.ResultSet; import java.util.Properties; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/BillingListBuffer.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/BillingListBuffer.java similarity index 91% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/BillingListBuffer.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/BillingListBuffer.java index 88eadc2..c303454 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/BillingListBuffer.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/BillingListBuffer.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.util.logging.Level; @@ -6,7 +6,7 @@ import org.compiere.process.ProcessInfoParameter; import org.compiere.process.SvrProcess; import org.compiere.util.Msg; -import andromedia.midsuit.model.MID_MBillingList; +import balinusa.midsuit.model.MID_MBillingList; public class BillingListBuffer extends SvrProcess{ diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/C_OrderRequsition.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/C_OrderRequsition.java similarity index 88% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/C_OrderRequsition.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/C_OrderRequsition.java index 916308a..d2aa2c4 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/C_OrderRequsition.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/C_OrderRequsition.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; public class C_OrderRequsition extends org.compiere.process.SvrProcess { diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/CryptCodecOpener.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/CryptCodecOpener.java similarity index 94% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/CryptCodecOpener.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/CryptCodecOpener.java index 9b3814a..2093897 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/CryptCodecOpener.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/CryptCodecOpener.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.io.File; import java.io.IOException; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_AutoCloseRequisition.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_AutoCloseRequisition.java similarity index 90% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_AutoCloseRequisition.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_AutoCloseRequisition.java index 98d6b1e..827e6e1 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_AutoCloseRequisition.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_AutoCloseRequisition.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.sql.Timestamp; import java.util.List; @@ -7,7 +7,7 @@ import org.compiere.model.Query; import org.compiere.process.DocAction; import org.compiere.process.SvrProcess; -import andromedia.midsuit.model.MID_MRequisitionTrx; +import balinusa.midsuit.model.MID_MRequisitionTrx; public class MID_AutoCloseRequisition extends SvrProcess{ diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_CompleteInvoice.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_CompleteInvoice.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_CompleteInvoice.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_CompleteInvoice.java index ea0dd55..a817db1 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_CompleteInvoice.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_CompleteInvoice.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import org.compiere.model.MInvoice; import org.compiere.model.Query; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_CompleteRecord.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_CompleteRecord.java similarity index 94% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_CompleteRecord.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_CompleteRecord.java index b15d152..b8ce612 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_CompleteRecord.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_CompleteRecord.java @@ -1,105 +1,105 @@ -package andromedia.midsuit.process; - -import java.util.logging.Level; - -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.MInOut; -import org.compiere.model.MInvoice; -import org.compiere.model.MOrder; -import org.compiere.model.MPayment; -import org.compiere.model.MRMA; -import org.compiere.model.MRequisition; -import org.compiere.process.DocAction; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.Trx; - -import andromedia.midsuit.model.MID_MRequisitionTrx; - -public class MID_CompleteRecord extends SvrProcess{ - String tableName = ""; - int record_ID = 0; - String DocAct = DocAction.ACTION_Complete; - @Override - protected void prepare() { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) { - String name = para[i].getParameterName(); - if (para[i].getParameter() == null) - ; - if (para[i].getParameterName().equals("TableName")) - tableName = para[i].getParameterAsString(); - else if (para[i].getParameterName().equals("Record_ID")) - record_ID = para[i].getParameterAsInt(); - else - log.log(Level.SEVERE, "Unknown Parameter: " + name); - } - } - - @Override - protected String doIt() throws Exception { - switch(tableName){ - case "C_Order" : - MOrder o = new MOrder(getCtx(), record_ID, get_TrxName()); - if(!o.processIt(DocAct)) { - Trx.get(get_TrxName(), false).rollback(); - throw new AdempiereException(o.getProcessMsg()); - }else - o.saveEx(); - break; - case "M_InOut" : - MInOut io = new MInOut(getCtx(), record_ID, get_TrxName()); - if(!io.processIt(DocAct)) { - Trx.get(get_TrxName(), false).rollback(); - throw new AdempiereException(io.getProcessMsg()); - }else - io.saveEx(); - break; - case "C_Invoice" : - MInvoice inv = new MInvoice(getCtx(), record_ID, get_TrxName()); - if(!inv.processIt(DocAct)) { - Trx.get(get_TrxName(), false).rollback(); - throw new AdempiereException(inv.getProcessMsg()); - }else - inv.saveEx(); - break; - case "C_Payment" : - MPayment p = new MPayment(getCtx(), record_ID, get_TrxName()); - if(!p.processIt(DocAct)) { - Trx.get(get_TrxName(), false).rollback(); - throw new AdempiereException(p.getProcessMsg()); - }else - p.saveEx(); - break; - case "MID_Requisition" : - MID_MRequisitionTrx rs = new MID_MRequisitionTrx(getCtx(), record_ID, get_TrxName()); - if(!rs.processIt(DocAct)) { - Trx.get(get_TrxName(), false).rollback(); - throw new AdempiereException(rs.getProcessMsg()); - }else - rs.saveEx(); - break; - case "M_Requisition" : - MRequisition req = new MRequisition(getCtx(), record_ID, get_TrxName()); - if(!req.processIt(DocAct)) { - Trx.get(get_TrxName(), false).rollback(); - throw new AdempiereException(req.getProcessMsg()); - }else - req.saveEx(); - break; - case "M_RMA" : - MRMA rma = new MRMA(getCtx(), record_ID, get_TrxName()); - if(!rma.processIt(DocAct)) { - Trx.get(get_TrxName(), false).rollback(); - throw new AdempiereException(rma.getProcessMsg()); - } - else - rma.saveEx(); - break; - - default : throw new AdempiereException( "Document For Table "+tableName+" Not Found !!!"); - } - return ""; - } - -} +package balinusa.midsuit.process; + +import java.util.logging.Level; + +import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MInOut; +import org.compiere.model.MInvoice; +import org.compiere.model.MOrder; +import org.compiere.model.MPayment; +import org.compiere.model.MRMA; +import org.compiere.model.MRequisition; +import org.compiere.process.DocAction; +import org.compiere.process.ProcessInfoParameter; +import org.compiere.process.SvrProcess; +import org.compiere.util.Trx; + +import balinusa.midsuit.model.MID_MRequisitionTrx; + +public class MID_CompleteRecord extends SvrProcess{ + String tableName = ""; + int record_ID = 0; + String DocAct = DocAction.ACTION_Complete; + @Override + protected void prepare() { + ProcessInfoParameter[] para = getParameter(); + for (int i = 0; i < para.length; i++) { + String name = para[i].getParameterName(); + if (para[i].getParameter() == null) + ; + if (para[i].getParameterName().equals("TableName")) + tableName = para[i].getParameterAsString(); + else if (para[i].getParameterName().equals("Record_ID")) + record_ID = para[i].getParameterAsInt(); + else + log.log(Level.SEVERE, "Unknown Parameter: " + name); + } + } + + @Override + protected String doIt() throws Exception { + switch(tableName){ + case "C_Order" : + MOrder o = new MOrder(getCtx(), record_ID, get_TrxName()); + if(!o.processIt(DocAct)) { + Trx.get(get_TrxName(), false).rollback(); + throw new AdempiereException(o.getProcessMsg()); + }else + o.saveEx(); + break; + case "M_InOut" : + MInOut io = new MInOut(getCtx(), record_ID, get_TrxName()); + if(!io.processIt(DocAct)) { + Trx.get(get_TrxName(), false).rollback(); + throw new AdempiereException(io.getProcessMsg()); + }else + io.saveEx(); + break; + case "C_Invoice" : + MInvoice inv = new MInvoice(getCtx(), record_ID, get_TrxName()); + if(!inv.processIt(DocAct)) { + Trx.get(get_TrxName(), false).rollback(); + throw new AdempiereException(inv.getProcessMsg()); + }else + inv.saveEx(); + break; + case "C_Payment" : + MPayment p = new MPayment(getCtx(), record_ID, get_TrxName()); + if(!p.processIt(DocAct)) { + Trx.get(get_TrxName(), false).rollback(); + throw new AdempiereException(p.getProcessMsg()); + }else + p.saveEx(); + break; + case "MID_Requisition" : + MID_MRequisitionTrx rs = new MID_MRequisitionTrx(getCtx(), record_ID, get_TrxName()); + if(!rs.processIt(DocAct)) { + Trx.get(get_TrxName(), false).rollback(); + throw new AdempiereException(rs.getProcessMsg()); + }else + rs.saveEx(); + break; + case "M_Requisition" : + MRequisition req = new MRequisition(getCtx(), record_ID, get_TrxName()); + if(!req.processIt(DocAct)) { + Trx.get(get_TrxName(), false).rollback(); + throw new AdempiereException(req.getProcessMsg()); + }else + req.saveEx(); + break; + case "M_RMA" : + MRMA rma = new MRMA(getCtx(), record_ID, get_TrxName()); + if(!rma.processIt(DocAct)) { + Trx.get(get_TrxName(), false).rollback(); + throw new AdempiereException(rma.getProcessMsg()); + } + else + rma.saveEx(); + break; + + default : throw new AdempiereException( "Document For Table "+tableName+" Not Found !!!"); + } + return ""; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_CreateLinesRequisitionOrder.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_CreateLinesRequisitionOrder.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_CreateLinesRequisitionOrder.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_CreateLinesRequisitionOrder.java index bf9b042..8b91bc2 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_CreateLinesRequisitionOrder.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_CreateLinesRequisitionOrder.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.math.BigDecimal; import java.math.RoundingMode; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_FinReport.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_FinReport.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_FinReport.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_FinReport.java index da12a28..09187f8 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_FinReport.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_FinReport.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import static org.compiere.model.SystemIDs.TABLE_T_REPORT; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_FinReportJasper.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_FinReportJasper.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_FinReportJasper.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_FinReportJasper.java index e85908e..ed088d9 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_FinReportJasper.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_FinReportJasper.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.sql.CallableStatement; import java.util.ArrayList; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_FinReportPeriod.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_FinReportPeriod.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_FinReportPeriod.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_FinReportPeriod.java index 7fd6777..d1b6d61 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_FinReportPeriod.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_FinReportPeriod.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_GenerateLandedCost.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_GenerateLandedCost.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_GenerateLandedCost.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_GenerateLandedCost.java index acd9156..d5d7982 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_GenerateLandedCost.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_GenerateLandedCost.java @@ -14,7 +14,7 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.math.BigDecimal; import java.sql.PreparedStatement; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Keluar.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Keluar.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Keluar.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Keluar.java index 09baeaa..7923548 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Keluar.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Keluar.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.math.BigDecimal; import java.util.ArrayList; @@ -18,11 +18,11 @@ import org.compiere.util.DB; import org.compiere.util.Env; import org.compiere.util.Msg; -import andromedia.midsuit.model.X_mid_ceisa_upload; -import andromedia.midsuit.model.MID_Ceisa_Order; -import andromedia.midsuit.model.X_mid_ceisa_entitas; -import andromedia.midsuit.model.X_mid_ceisa_order; -import andromedia.midsuit.model.X_mid_ceisa_orderline; +import balinusa.midsuit.model.MID_Ceisa_Order; +import balinusa.midsuit.model.X_mid_ceisa_entitas; +import balinusa.midsuit.model.X_mid_ceisa_order; +import balinusa.midsuit.model.X_mid_ceisa_orderline; +import balinusa.midsuit.model.X_mid_ceisa_upload; public class MID_GenerateOrderCeisa40Keluar extends SvrProcess{ diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Masuk.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Masuk.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Masuk.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Masuk.java index 7f0a1d4..da95d50 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Masuk.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_GenerateOrderCeisa40Masuk.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.math.BigDecimal; import java.util.ArrayList; @@ -19,11 +19,11 @@ import org.compiere.util.DB; import org.compiere.util.Env; import org.compiere.util.Msg; -import andromedia.midsuit.model.MID_Ceisa_Order; -import andromedia.midsuit.model.X_mid_ceisa_entitas; -import andromedia.midsuit.model.X_mid_ceisa_order; -import andromedia.midsuit.model.X_mid_ceisa_orderline; -import andromedia.midsuit.model.X_mid_ceisa_upload; +import balinusa.midsuit.model.MID_Ceisa_Order; +import balinusa.midsuit.model.X_mid_ceisa_entitas; +import balinusa.midsuit.model.X_mid_ceisa_order; +import balinusa.midsuit.model.X_mid_ceisa_orderline; +import balinusa.midsuit.model.X_mid_ceisa_upload; public class MID_GenerateOrderCeisa40Masuk extends SvrProcess{ X_mid_ceisa_upload ceisa = null; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_InsertIntoAllTable.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_InsertIntoAllTable.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_InsertIntoAllTable.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_InsertIntoAllTable.java index d9932cf..8a2e34f 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_InsertIntoAllTable.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_InsertIntoAllTable.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.lang.reflect.Constructor; import java.lang.reflect.Method; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_InventoryLineCreate.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_InventoryLineCreate.java similarity index 94% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_InventoryLineCreate.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_InventoryLineCreate.java index 59c034a..ac0b099 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_InventoryLineCreate.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_InventoryLineCreate.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import org.adempiere.exceptions.AdempiereException; import org.compiere.model.MDocType; @@ -8,8 +8,8 @@ import org.compiere.model.Query; import org.compiere.process.ProcessInfoParameter; import org.compiere.process.SvrProcess; -import andromedia.midsuit.model.MID_PPOLine; -import andromedia.midsuit.model.X_ps_ppoline; +import balinusa.midsuit.model.MID_PPOLine; +import balinusa.midsuit.model.X_ps_ppoline; import java.math.BigDecimal; import java.util.List; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_JournalTest.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_JournalTest.java similarity index 93% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_JournalTest.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_JournalTest.java index 0bbd75a..5fee243 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_JournalTest.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_JournalTest.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import org.compiere.model.MJournal; import org.compiere.process.SvrProcess; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_MovementCreateLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_MovementCreateLine.java similarity index 88% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_MovementCreateLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_MovementCreateLine.java index c8eb0c3..5dd299b 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_MovementCreateLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_MovementCreateLine.java @@ -1,50 +1,50 @@ -package andromedia.midsuit.process; - -import java.util.List; - -import org.compiere.model.MMovementLine; -import org.compiere.model.Query; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; - -import andromedia.midsuit.model.MID_MMovement; -import andromedia.midsuit.model.MID_PPOLine; - -public class MID_MovementCreateLine extends SvrProcess{ - - MID_MMovement movement = null; - @Override - protected void prepare() { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { -// String name = para[i].getParameterName(); -// if ("Recreate".equals(name)) -// isRecreate = "Y".equals(para[i].getParameter()); -// else -// log.log(Level.SEVERE, "Unknown Parameter: " + name); - } - - movement = new MID_MMovement(getCtx(), getRecord_ID(), get_TrxName()); - } - - @Override - protected String doIt() throws Exception { - int PS_PPO_ID = movement.get_ValueAsInt("ps_ppo_ID"); - - List lines = new Query (getCtx(), MID_PPOLine.Table_Name, " ps_ppo_ID =? AND IsEndProduct =?", get_TrxName()) - .setOnlyActiveRecords(true) - .setParameters(new Object[] { PS_PPO_ID, false }) - .list(); - for(MID_PPOLine line : lines) { - MMovementLine mLine = new MMovementLine(movement); - mLine.setM_Product_ID(line.getM_Product_ID()); - mLine.setMovementQty(line.getQtyUsed()); - mLine.setM_Locator_ID(movement.get_ValueAsInt("M_Locator_ID")); - mLine.setM_LocatorTo_ID(movement.get_ValueAsInt("M_LocatorTo_ID")); - mLine.saveEx(); - } - return null; - } - -} +package balinusa.midsuit.process; + +import java.util.List; + +import org.compiere.model.MMovementLine; +import org.compiere.model.Query; +import org.compiere.process.ProcessInfoParameter; +import org.compiere.process.SvrProcess; + +import balinusa.midsuit.model.MID_MMovement; +import balinusa.midsuit.model.MID_PPOLine; + +public class MID_MovementCreateLine extends SvrProcess{ + + MID_MMovement movement = null; + @Override + protected void prepare() { + ProcessInfoParameter[] para = getParameter(); + for (int i = 0; i < para.length; i++) + { +// String name = para[i].getParameterName(); +// if ("Recreate".equals(name)) +// isRecreate = "Y".equals(para[i].getParameter()); +// else +// log.log(Level.SEVERE, "Unknown Parameter: " + name); + } + + movement = new MID_MMovement(getCtx(), getRecord_ID(), get_TrxName()); + } + + @Override + protected String doIt() throws Exception { + int PS_PPO_ID = movement.get_ValueAsInt("ps_ppo_ID"); + + List lines = new Query (getCtx(), MID_PPOLine.Table_Name, " ps_ppo_ID =? AND IsEndProduct =?", get_TrxName()) + .setOnlyActiveRecords(true) + .setParameters(new Object[] { PS_PPO_ID, false }) + .list(); + for(MID_PPOLine line : lines) { + MMovementLine mLine = new MMovementLine(movement); + mLine.setM_Product_ID(line.getM_Product_ID()); + mLine.setMovementQty(line.getQtyUsed()); + mLine.setM_Locator_ID(movement.get_ValueAsInt("M_Locator_ID")); + mLine.setM_LocatorTo_ID(movement.get_ValueAsInt("M_LocatorTo_ID")); + mLine.saveEx(); + } + return null; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_PEBRevoke.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_PEBRevoke.java similarity index 90% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_PEBRevoke.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_PEBRevoke.java index 29f526a..c1f0fcb 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_PEBRevoke.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_PEBRevoke.java @@ -1,10 +1,10 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import org.compiere.model.MRMA; import org.compiere.process.SvrProcess; -import andromedia.midsuit.model.MID_MOrder; -import andromedia.midsuit.model.X_MID_UploadPEBLine; +import balinusa.midsuit.model.MID_MOrder; +import balinusa.midsuit.model.X_MID_UploadPEBLine; public class MID_PEBRevoke extends SvrProcess { X_MID_UploadPEBLine pebLine = null; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_PEBUpdateOrder.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_PEBUpdateOrder.java similarity index 94% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_PEBUpdateOrder.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_PEBUpdateOrder.java index 9897945..1981ecb 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_PEBUpdateOrder.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_PEBUpdateOrder.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.sql.Timestamp; import java.text.SimpleDateFormat; @@ -13,8 +13,8 @@ import org.compiere.process.ProcessInfoParameter; import org.compiere.process.SvrProcess; import org.compiere.util.DB; -import andromedia.midsuit.model.X_MID_UploadPEB; -import andromedia.midsuit.model.X_MID_UploadPEBLine; +import balinusa.midsuit.model.X_MID_UploadPEB; +import balinusa.midsuit.model.X_MID_UploadPEBLine; public class MID_PEBUpdateOrder extends SvrProcess{ X_MID_UploadPEB peb = null; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_PEBUpdateOrderLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_PEBUpdateOrderLine.java similarity index 91% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_PEBUpdateOrderLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_PEBUpdateOrderLine.java index 84c227e..79ba630 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_PEBUpdateOrderLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_PEBUpdateOrderLine.java @@ -1,69 +1,69 @@ -package andromedia.midsuit.process; - -import java.util.List; - -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.MOrder; -import org.compiere.model.MRMA; -import org.compiere.model.Query; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; - -import andromedia.midsuit.model.X_MID_UploadPEB; -import andromedia.midsuit.model.X_MID_UploadPEBLine; - -public class MID_PEBUpdateOrderLine extends SvrProcess{ - X_MID_UploadPEBLine pebLine = null; - @Override - protected void prepare() { - // TODO Auto-generated method stub - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - } - pebLine = new X_MID_UploadPEBLine(getCtx(), getRecord_ID(), get_TrxName()); - } - - @Override - protected String doIt() throws Exception { - if(pebLine.getC_Order_ID()==0 && pebLine.getM_RMA_ID()==0) - throw new AdempiereException("Sales Order / Return Order Must be Filled !!!"); - - if(pebLine.getC_Order_ID()>0) - setOrder(pebLine); - else - setRMA(pebLine); - pebLine.setProcessed(true); - pebLine.saveEx(); - - int countNotProcessed = DB.getSQLValueEx(get_TrxName(), "SELECT COUNT(*) FROM MID_UploadPEBLine WHERE Processed =? AND MID_UploadPEB_ID =?", new Object[] { false, pebLine.getMID_UploadPEB_ID() }); - if(countNotProcessed==0) { - X_MID_UploadPEB peb = new X_MID_UploadPEB(getCtx(), pebLine.getMID_UploadPEB_ID(), get_TrxName()); - peb.setProcessed(true); - peb.saveEx(); - } - return ""; - - } - - private void setRMA(X_MID_UploadPEBLine pebLine) { - MRMA rma = new MRMA(getCtx(), pebLine.getM_RMA_ID(), get_TrxName()); - rma.set_ValueNoCheck("RegisterNo", pebLine.getRegisterNo()); - rma.set_ValueNoCheck("RegisterDate", pebLine.getRegisterDate()); - rma.set_ValueNoCheck("NoAju", pebLine.getNoAju()); - rma.set_ValueNoCheck("MID_AJUDocumentType_ID", pebLine.getMID_AJUDocumentType_ID()); - rma.saveEx(); - } - - private void setOrder(X_MID_UploadPEBLine pebLine) { - MOrder order = new MOrder(getCtx(), pebLine.getC_Order_ID(), get_TrxName()); - order.set_ValueNoCheck("RegisterNo", pebLine.getRegisterNo()); - order.set_ValueNoCheck("RegisterDate", pebLine.getRegisterDate()); - order.set_ValueNoCheck("NoAju1", pebLine.getNoAju()); - order.set_ValueNoCheck("MID_AJUDocumentType_ID", pebLine.getMID_AJUDocumentType_ID()); - order.saveEx(); - } - - -} +package balinusa.midsuit.process; + +import java.util.List; + +import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MOrder; +import org.compiere.model.MRMA; +import org.compiere.model.Query; +import org.compiere.process.ProcessInfoParameter; +import org.compiere.process.SvrProcess; +import org.compiere.util.DB; + +import balinusa.midsuit.model.X_MID_UploadPEB; +import balinusa.midsuit.model.X_MID_UploadPEBLine; + +public class MID_PEBUpdateOrderLine extends SvrProcess{ + X_MID_UploadPEBLine pebLine = null; + @Override + protected void prepare() { + // TODO Auto-generated method stub + ProcessInfoParameter[] para = getParameter(); + for (int i = 0; i < para.length; i++) + { + } + pebLine = new X_MID_UploadPEBLine(getCtx(), getRecord_ID(), get_TrxName()); + } + + @Override + protected String doIt() throws Exception { + if(pebLine.getC_Order_ID()==0 && pebLine.getM_RMA_ID()==0) + throw new AdempiereException("Sales Order / Return Order Must be Filled !!!"); + + if(pebLine.getC_Order_ID()>0) + setOrder(pebLine); + else + setRMA(pebLine); + pebLine.setProcessed(true); + pebLine.saveEx(); + + int countNotProcessed = DB.getSQLValueEx(get_TrxName(), "SELECT COUNT(*) FROM MID_UploadPEBLine WHERE Processed =? AND MID_UploadPEB_ID =?", new Object[] { false, pebLine.getMID_UploadPEB_ID() }); + if(countNotProcessed==0) { + X_MID_UploadPEB peb = new X_MID_UploadPEB(getCtx(), pebLine.getMID_UploadPEB_ID(), get_TrxName()); + peb.setProcessed(true); + peb.saveEx(); + } + return ""; + + } + + private void setRMA(X_MID_UploadPEBLine pebLine) { + MRMA rma = new MRMA(getCtx(), pebLine.getM_RMA_ID(), get_TrxName()); + rma.set_ValueNoCheck("RegisterNo", pebLine.getRegisterNo()); + rma.set_ValueNoCheck("RegisterDate", pebLine.getRegisterDate()); + rma.set_ValueNoCheck("NoAju", pebLine.getNoAju()); + rma.set_ValueNoCheck("MID_AJUDocumentType_ID", pebLine.getMID_AJUDocumentType_ID()); + rma.saveEx(); + } + + private void setOrder(X_MID_UploadPEBLine pebLine) { + MOrder order = new MOrder(getCtx(), pebLine.getC_Order_ID(), get_TrxName()); + order.set_ValueNoCheck("RegisterNo", pebLine.getRegisterNo()); + order.set_ValueNoCheck("RegisterDate", pebLine.getRegisterDate()); + order.set_ValueNoCheck("NoAju1", pebLine.getNoAju()); + order.set_ValueNoCheck("MID_AJUDocumentType_ID", pebLine.getMID_AJUDocumentType_ID()); + order.saveEx(); + } + + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessAging.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessAging.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessAging.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessAging.java index adf14f4..bb099b0 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessAging.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessAging.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.math.BigDecimal; import java.sql.PreparedStatement; @@ -21,7 +21,7 @@ import org.compiere.util.DB; import org.compiere.util.TimeUtil; import org.compiere.util.Trx; -import andromedia.midsuit.model.MID_Aging; +import balinusa.midsuit.model.MID_Aging; public class MID_ProcessAging extends SvrProcess { diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCompleteUnrealized.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCompleteUnrealized.java similarity index 82% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCompleteUnrealized.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCompleteUnrealized.java index af558ee..adde228 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCompleteUnrealized.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCompleteUnrealized.java @@ -1,29 +1,29 @@ -package andromedia.midsuit.process; - -import org.adempiere.exceptions.AdempiereException; -import org.compiere.process.SvrProcess; - -import andromedia.midsuit.model.MID_UnrealizedRate; - -public class MID_ProcessCompleteUnrealized extends SvrProcess { - MID_UnrealizedRate unRate = null; - - @Override - protected void prepare() { - unRate = new MID_UnrealizedRate(getCtx(), getRecord_ID(), get_TrxName()); - - - } - - @Override - protected String doIt() throws Exception { - if(unRate.isProcessed()){ - throw new AdempiereException("Already Processed !!!"); - }else{ - unRate.setProcessed(true); - unRate.saveEx(); - } - return ""; - } - -} +package balinusa.midsuit.process; + +import org.adempiere.exceptions.AdempiereException; +import org.compiere.process.SvrProcess; + +import balinusa.midsuit.model.MID_UnrealizedRate; + +public class MID_ProcessCompleteUnrealized extends SvrProcess { + MID_UnrealizedRate unRate = null; + + @Override + protected void prepare() { + unRate = new MID_UnrealizedRate(getCtx(), getRecord_ID(), get_TrxName()); + + + } + + @Override + protected String doIt() throws Exception { + if(unRate.isProcessed()){ + throw new AdempiereException("Already Processed !!!"); + }else{ + unRate.setProcessed(true); + unRate.saveEx(); + } + return ""; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCopyOrder.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCopyOrder.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCopyOrder.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCopyOrder.java index e34bba0..2be96f3 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCopyOrder.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCopyOrder.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCreateInBoundWH.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCreateInBoundWH.java similarity index 92% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCreateInBoundWH.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCreateInBoundWH.java index 30a601b..4d2e0f0 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCreateInBoundWH.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCreateInBoundWH.java @@ -1,99 +1,100 @@ - - -package andromedia.midsuit.process; - -import java.sql.Timestamp; -import java.util.List; -import java.util.logging.Level; - -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.MMovement; -import org.compiere.model.MMovementLine; -import org.compiere.process.DocAction; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; -import andromedia.midsuit.model.MID_MDDOrder; -import andromedia.midsuit.model.MID_MDDOrderLine; - -public class MID_ProcessCreateInBoundWH extends SvrProcess { - - private Timestamp p_MovementDate = null; - private int p_C_DocType_ID = 0; - - @Override - protected void prepare() { - ProcessInfoParameter[] para = getParameter(); - - for (int i = 0; i < para.length; i++) { - String name = para[i].getParameterName(); - switch (name) { - case "C_DocType_ID": - p_C_DocType_ID = para[i].getParameterAsInt(); - break; - case "MovementDate": - p_MovementDate = para[i].getParameterAsTimestamp(); - break; - default: - log.log(Level.SEVERE, "Unknown Parameter: " + name); - break; - } - } - } - - @Override - protected String doIt() throws Exception { - // Get Current InterMovement - MID_MDDOrder ddOrder = new MID_MDDOrder(getCtx(), getRecord_ID(), get_TrxName()); - MID_MDDOrderLine[] ddOrderLines = ddOrder.getLines("", ""); - - - // Create Movement - Rizky - MMovement movement = new MMovement(getCtx(), 0, get_TrxName()); - if (p_MovementDate != null) { - movement.setMovementDate(p_MovementDate); - } - movement.setAD_Org_ID(ddOrder.getAD_Org_ID()); - movement.setC_DocType_ID(p_C_DocType_ID); - movement.saveEx(); - - String toLocatorSQL = "select b.m_locator_id from m_warehouse a " - + " inner join m_locator b on b.m_warehouse_id = a.m_warehouse_id" - + " and a.isintransit = 'Y' and a.ad_org_id ="+ddOrder.getAD_Org_ID(); - int fromLocatorID = DB.getSQLValue(get_TrxName(), toLocatorSQL); - if (fromLocatorID < 0) { - throw new AdempiereException("Warehouse In-Transit tidak ada!"); - } - - // Create Inbound Movement for each line - for (MID_MDDOrderLine line : ddOrderLines) { - MMovementLine movementline = new MMovementLine(movement); - movementline.setM_Locator_ID(fromLocatorID); - movementline.setM_LocatorTo_ID(line.getM_LocatorTo_ID()); - movementline.setM_Product_ID(line.getM_Product_ID()); - movementline.setMovementQty(line.getConfirmedQty()); - movementline.setDescription(line.getDescription()==null ? line.getDescription() : ""); - movementline.saveEx(); - } - - // Complete Movement - Rizky - try{ - if(!movement.processIt(DocAction.ACTION_Complete)){ - throw new AdempiereException("Cannot Complete Inbound Movement" + movement.getProcessMsg()); - } - movement.saveEx(); - }catch(Exception e){ - throw new AdempiereException("Cannot Complete Inbound Movement" + movement.getProcessMsg()); - } - - - // Set Inbound to InterWarehouse Movement - ddOrder.setDateReceived(p_MovementDate); - ddOrder.set_ValueNoCheck("IsDelivered", true); - ddOrder.setM_MovementIn_ID(movement.get_ID()); - ddOrder.saveEx(); - - return null; - } - -} + + +package balinusa.midsuit.process; + +import java.sql.Timestamp; +import java.util.List; +import java.util.logging.Level; + +import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MMovement; +import org.compiere.model.MMovementLine; +import org.compiere.process.DocAction; +import org.compiere.process.ProcessInfoParameter; +import org.compiere.process.SvrProcess; +import org.compiere.util.DB; + +import balinusa.midsuit.model.MID_MDDOrder; +import balinusa.midsuit.model.MID_MDDOrderLine; + +public class MID_ProcessCreateInBoundWH extends SvrProcess { + + private Timestamp p_MovementDate = null; + private int p_C_DocType_ID = 0; + + @Override + protected void prepare() { + ProcessInfoParameter[] para = getParameter(); + + for (int i = 0; i < para.length; i++) { + String name = para[i].getParameterName(); + switch (name) { + case "C_DocType_ID": + p_C_DocType_ID = para[i].getParameterAsInt(); + break; + case "MovementDate": + p_MovementDate = para[i].getParameterAsTimestamp(); + break; + default: + log.log(Level.SEVERE, "Unknown Parameter: " + name); + break; + } + } + } + + @Override + protected String doIt() throws Exception { + // Get Current InterMovement + MID_MDDOrder ddOrder = new MID_MDDOrder(getCtx(), getRecord_ID(), get_TrxName()); + MID_MDDOrderLine[] ddOrderLines = ddOrder.getLines("", ""); + + + // Create Movement - Rizky + MMovement movement = new MMovement(getCtx(), 0, get_TrxName()); + if (p_MovementDate != null) { + movement.setMovementDate(p_MovementDate); + } + movement.setAD_Org_ID(ddOrder.getAD_Org_ID()); + movement.setC_DocType_ID(p_C_DocType_ID); + movement.saveEx(); + + String toLocatorSQL = "select b.m_locator_id from m_warehouse a " + + " inner join m_locator b on b.m_warehouse_id = a.m_warehouse_id" + + " and a.isintransit = 'Y' and a.ad_org_id ="+ddOrder.getAD_Org_ID(); + int fromLocatorID = DB.getSQLValue(get_TrxName(), toLocatorSQL); + if (fromLocatorID < 0) { + throw new AdempiereException("Warehouse In-Transit tidak ada!"); + } + + // Create Inbound Movement for each line + for (MID_MDDOrderLine line : ddOrderLines) { + MMovementLine movementline = new MMovementLine(movement); + movementline.setM_Locator_ID(fromLocatorID); + movementline.setM_LocatorTo_ID(line.getM_LocatorTo_ID()); + movementline.setM_Product_ID(line.getM_Product_ID()); + movementline.setMovementQty(line.getConfirmedQty()); + movementline.setDescription(line.getDescription()==null ? line.getDescription() : ""); + movementline.saveEx(); + } + + // Complete Movement - Rizky + try{ + if(!movement.processIt(DocAction.ACTION_Complete)){ + throw new AdempiereException("Cannot Complete Inbound Movement" + movement.getProcessMsg()); + } + movement.saveEx(); + }catch(Exception e){ + throw new AdempiereException("Cannot Complete Inbound Movement" + movement.getProcessMsg()); + } + + + // Set Inbound to InterWarehouse Movement + ddOrder.setDateReceived(p_MovementDate); + ddOrder.set_ValueNoCheck("IsDelivered", true); + ddOrder.setM_MovementIn_ID(movement.get_ID()); + ddOrder.saveEx(); + + return null; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCreateOutBoundWH.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCreateOutBoundWH.java similarity index 92% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCreateOutBoundWH.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCreateOutBoundWH.java index 7860858..0865ad3 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCreateOutBoundWH.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessCreateOutBoundWH.java @@ -1,93 +1,94 @@ -package andromedia.midsuit.process; - -import java.sql.Timestamp; -import java.util.logging.Level; - -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.MMovement; -import org.compiere.model.MMovementLine; -import org.compiere.process.DocAction; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; -import andromedia.midsuit.model.MID_MDDOrder; -import andromedia.midsuit.model.MID_MDDOrderLine; - -public class MID_ProcessCreateOutBoundWH extends SvrProcess { - - private Timestamp p_MovementDate = null; - private int p_C_DocType_ID = 0; - - @Override - protected void prepare() { - ProcessInfoParameter[] para = getParameter(); - - for (int i = 0; i < para.length; i++) { - String name = para[i].getParameterName(); - switch (name) { - case "C_DocType_ID": - p_C_DocType_ID = para[i].getParameterAsInt(); - break; - case "MovementDate": - p_MovementDate = para[i].getParameterAsTimestamp(); - break; - default: - log.log(Level.SEVERE, "Unknown Parameter: " + name); - break; - } - } - } - - @Override - protected String doIt() throws Exception { - // Get Current InterMovement - MID_MDDOrder ddOrder = new MID_MDDOrder(getCtx(), getRecord_ID(), get_TrxName()); - MID_MDDOrderLine[] ddOrderLines = ddOrder.getLines("", ""); - - // Create Movement - Rizky - MMovement movement = new MMovement(getCtx(), 0, get_TrxName()); - if (p_MovementDate != null) { - movement.setMovementDate(p_MovementDate); - } - movement.setDescription(ddOrder.getDescription()!=null ?ddOrder.getDescription() : ""); - movement.setAD_Org_ID(ddOrder.getAD_Org_ID()); - movement.setC_DocType_ID(p_C_DocType_ID); - movement.saveEx(); - - String toLocatorSQL = "select b.M_Locator_ID from m_warehouse a " - + " inner join m_locator b on b.m_warehouse_id = a.m_warehouse_id" - + " and a.isintransit = 'Y' AND a.AD_Org_ID =" + ddOrder.getAD_Org_ID(); - int toLocatorID = DB.getSQLValue(get_TrxName(), toLocatorSQL); - if (toLocatorID < 0) { - throw new AdempiereException("Warehouse In-Transit tidak ada!"); - } - - // Create Outbound Movement for each line - for (MID_MDDOrderLine line : ddOrderLines) { - MMovementLine movementline = new MMovementLine(movement); - movementline.setM_Locator_ID(line.getM_Locator_ID()); - movementline.setM_LocatorTo_ID(toLocatorID); - movementline.setM_Product_ID(line.getM_Product_ID()); - movementline.setMovementQty(line.getQtyEntered()); - movementline.setDescription(line.getDescription()!=null ? line.getDescription() : ""); - movementline.saveEx(); - } - - // Complete Movement - Rizky - try{ - if(!movement.processIt(DocAction.ACTION_Complete)){ - throw new AdempiereException("Cannot Complete Inbound Movement" + movement.getProcessMsg()); - } - - }catch(Exception e){ - throw new AdempiereException("Cannot Complete Inbound Movement" + movement.getProcessMsg()); - } - - // Set Outbound to InterWarehouse Movement - ddOrder.setIsInTransit(true); - ddOrder.setM_MovementOut_ID(movement.get_ID()); - ddOrder.saveEx(); - return ""; - } - -} +package balinusa.midsuit.process; + +import java.sql.Timestamp; +import java.util.logging.Level; + +import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MMovement; +import org.compiere.model.MMovementLine; +import org.compiere.process.DocAction; +import org.compiere.process.ProcessInfoParameter; +import org.compiere.process.SvrProcess; +import org.compiere.util.DB; + +import balinusa.midsuit.model.MID_MDDOrder; +import balinusa.midsuit.model.MID_MDDOrderLine; + +public class MID_ProcessCreateOutBoundWH extends SvrProcess { + + private Timestamp p_MovementDate = null; + private int p_C_DocType_ID = 0; + + @Override + protected void prepare() { + ProcessInfoParameter[] para = getParameter(); + + for (int i = 0; i < para.length; i++) { + String name = para[i].getParameterName(); + switch (name) { + case "C_DocType_ID": + p_C_DocType_ID = para[i].getParameterAsInt(); + break; + case "MovementDate": + p_MovementDate = para[i].getParameterAsTimestamp(); + break; + default: + log.log(Level.SEVERE, "Unknown Parameter: " + name); + break; + } + } + } + + @Override + protected String doIt() throws Exception { + // Get Current InterMovement + MID_MDDOrder ddOrder = new MID_MDDOrder(getCtx(), getRecord_ID(), get_TrxName()); + MID_MDDOrderLine[] ddOrderLines = ddOrder.getLines("", ""); + + // Create Movement - Rizky + MMovement movement = new MMovement(getCtx(), 0, get_TrxName()); + if (p_MovementDate != null) { + movement.setMovementDate(p_MovementDate); + } + movement.setDescription(ddOrder.getDescription()!=null ?ddOrder.getDescription() : ""); + movement.setAD_Org_ID(ddOrder.getAD_Org_ID()); + movement.setC_DocType_ID(p_C_DocType_ID); + movement.saveEx(); + + String toLocatorSQL = "select b.M_Locator_ID from m_warehouse a " + + " inner join m_locator b on b.m_warehouse_id = a.m_warehouse_id" + + " and a.isintransit = 'Y' AND a.AD_Org_ID =" + ddOrder.getAD_Org_ID(); + int toLocatorID = DB.getSQLValue(get_TrxName(), toLocatorSQL); + if (toLocatorID < 0) { + throw new AdempiereException("Warehouse In-Transit tidak ada!"); + } + + // Create Outbound Movement for each line + for (MID_MDDOrderLine line : ddOrderLines) { + MMovementLine movementline = new MMovementLine(movement); + movementline.setM_Locator_ID(line.getM_Locator_ID()); + movementline.setM_LocatorTo_ID(toLocatorID); + movementline.setM_Product_ID(line.getM_Product_ID()); + movementline.setMovementQty(line.getQtyEntered()); + movementline.setDescription(line.getDescription()!=null ? line.getDescription() : ""); + movementline.saveEx(); + } + + // Complete Movement - Rizky + try{ + if(!movement.processIt(DocAction.ACTION_Complete)){ + throw new AdempiereException("Cannot Complete Inbound Movement" + movement.getProcessMsg()); + } + + }catch(Exception e){ + throw new AdempiereException("Cannot Complete Inbound Movement" + movement.getProcessMsg()); + } + + // Set Outbound to InterWarehouse Movement + ddOrder.setIsInTransit(true); + ddOrder.setM_MovementOut_ID(movement.get_ID()); + ddOrder.saveEx(); + return ""; + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessRVAging.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessRVAging.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessRVAging.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessRVAging.java index 59a3326..13ce104 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessRVAging.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessRVAging.java @@ -1,264 +1,264 @@ -/****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * - * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * - * This program is free software; you can redistribute it and/or modify it * - * under the terms version 2 of the GNU General Public License as published * - * by the Free Software Foundation. This program is distributed in the hope * - * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * - * See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along * - * with this program; if not, write to the Free Software Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * - * For the text or an alternative of this public license, you may reach us * - * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * - * or via info@compiere.org or http://www.compiere.org/license.html * - *****************************************************************************/ -package andromedia.midsuit.process; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Timestamp; -import java.util.logging.Level; - -import org.adempiere.exceptions.DBException; -import org.compiere.model.MAging; -import org.compiere.model.MRole; -import org.compiere.print.ReportEngine; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; -import org.compiere.util.TimeUtil; - -/** - * Invoice Aging Report. - * Based on RV_Aging. - * @author Jorg Janke - * @author victor.perez@e-evolution.com FR 1933937 Is necessary a new Aging to Date - * @see http://sourceforge.net/tracker/index.php?func=detail&aid=1933937&group_id=176962&atid=879335 - * @author Carlos Ruiz - globalqss BF 2655587 Multi-org not supported in Aging - * @see https://sourceforge.net/tracker2/?func=detail&aid=2655587&group_id=176962&atid=879332 - * @version $Id: Aging.java,v 1.5 2006/10/07 00:58:44 jjanke Exp $ - */ -public class MID_ProcessRVAging extends SvrProcess -{ - /** The date to calculate the days due from */ - private Timestamp p_StatementDate = null; - //FR 1933937 - private boolean p_DateAcct = false; - private boolean p_IsSOTrx = false; - private int p_C_Currency_ID = 0; - private int p_AD_Org_ID = 0; - private int p_C_BP_Group_ID = 0; - private int p_C_BPartner_ID = 0; - private boolean p_IsListInvoices = false; - /** Number of days between today and statement date */ - private int m_statementOffset = 0; - - /** - * Prepare - e.g., get Parameters. - */ - protected void prepare() - { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - String name = para[i].getParameterName(); - if (para[i].getParameter() == null) - ; - else if (name.equals("StatementDate")) - p_StatementDate = (Timestamp)para[i].getParameter(); - else if (name.equals("DateAcct")) - p_DateAcct = "Y".equals(para[i].getParameter()); - else if (name.equals("IsSOTrx")) - p_IsSOTrx = "Y".equals(para[i].getParameter()); - else if (name.equals("C_Currency_ID")) - p_C_Currency_ID = ((BigDecimal)para[i].getParameter()).intValue(); - else if (name.equals("AD_Org_ID")) - p_AD_Org_ID = ((BigDecimal)para[i].getParameter()).intValue(); - else if (name.equals("C_BP_Group_ID")) - p_C_BP_Group_ID = ((BigDecimal)para[i].getParameter()).intValue(); - else if (name.equals("C_BPartner_ID")) - p_C_BPartner_ID = ((BigDecimal)para[i].getParameter()).intValue(); - else if (name.equals("IsListInvoices")) - p_IsListInvoices = "Y".equals(para[i].getParameter()); - else - log.log(Level.SEVERE, "Unknown Parameter: " + name); - } - if (p_StatementDate == null) - p_StatementDate = new Timestamp (System.currentTimeMillis()); - else - m_statementOffset = TimeUtil.getDaysBetween( - new Timestamp(System.currentTimeMillis()), p_StatementDate); - } // prepare - - /** - * DoIt - * @return Message - * @throws Exception - */ - protected String doIt() throws Exception - { - if (log.isLoggable(Level.INFO)) log.info("StatementDate=" + p_StatementDate + ", IsSOTrx=" + p_IsSOTrx - + ", C_Currency_ID=" + p_C_Currency_ID + ", AD_Org_ID=" + p_AD_Org_ID - + ", C_BP_Group_ID=" + p_C_BP_Group_ID + ", C_BPartner_ID=" + p_C_BPartner_ID - + ", IsListInvoices=" + p_IsListInvoices); - //FR 1933937 - String dateacct = DB.TO_DATE(p_StatementDate); - - StringBuilder sql = new StringBuilder(); - sql.append("SELECT bp.C_BP_Group_ID, oi.C_BPartner_ID,oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID, " // 1..4 - + "oi.C_Currency_ID, oi.IsSOTrx, " // 5..6 - + "oi.DateInvoiced, oi.NetDays,oi.DueDate,oi.DaysDue, "); // 7..10 - if (p_C_Currency_ID == 0) - { - if (!p_DateAcct)//FR 1933937 - { - sql.append(" oi.GrandTotal, oi.PaidAmt, oi.OpenAmt "); // 11..13 - } - else - { - sql.append(" oi.GrandTotal, invoicePaidToDate(oi.C_Invoice_ID, oi.C_Currency_ID, 1,"+dateacct+") AS PaidAmt, invoiceOpenToDate(oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID,"+dateacct+") AS OpenAmt "); // 11..13 - } - } - else - { - String s = ",oi.C_Currency_ID," + p_C_Currency_ID + ",oi.DateAcct,oi.C_ConversionType_ID,oi.AD_Client_ID,oi.AD_Org_ID)"; - sql.append("currencyConvert(oi.GrandTotal").append(s); // 11 - if (!p_DateAcct) - { - sql.append(", currencyConvert(oi.PaidAmt").append(s) // 12 - .append(", currencyConvert(oi.OpenAmt").append(s); // 13 - } - else - { - sql.append(", currencyConvert(invoicePaidToDate(oi.C_Invoice_ID, oi.C_Currency_ID, 1,"+dateacct+")").append(s) // 12 - .append(", currencyConvert(invoiceOpenToDate(oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID,"+dateacct+")").append(s); // 13 - } - } - sql.append(",oi.C_Activity_ID,oi.C_Campaign_ID,oi.C_Project_ID,oi.AD_Org_ID "); // 14..17 - if (!p_DateAcct)//FR 1933937 - { - sql.append(" FROM RV_OpenItem oi"); - } - else - { - sql.append(" FROM RV_OpenItemToDate oi"); - } - - sql.append(" INNER JOIN C_BPartner bp ON (oi.C_BPartner_ID=bp.C_BPartner_ID) " - + "WHERE oi.ISSoTrx=").append(p_IsSOTrx ? "'Y'" : "'N'"); - if (p_C_BPartner_ID > 0) - { - sql.append(" AND oi.C_BPartner_ID=").append(p_C_BPartner_ID); - } - else if (p_C_BP_Group_ID > 0) - { - sql.append(" AND bp.C_BP_Group_ID=").append(p_C_BP_Group_ID); - } - if (p_AD_Org_ID > 0) // BF 2655587 - { - sql.append(" AND oi.AD_Org_ID=").append(p_AD_Org_ID); - } - - if (p_DateAcct)//FR 1933937 - { - sql.append(" AND invoiceOpenToDate(oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID,"+dateacct+") <> 0 "); - } - - sql.append(" ORDER BY oi.C_BPartner_ID, oi.C_Currency_ID, oi.C_Invoice_ID"); - - if (log.isLoggable(Level.FINEST)) log.finest(sql.toString()); -// String finalSql = MRole.getDefault(getCtx(), false).addAccessSQL( -// sql.toString(), "oi", MRole.SQL_FULLYQUALIFIED, MRole.SQL_RO); - String finalSql = sql.toString(); - log.finer(finalSql); - - PreparedStatement pstmt = null; - ResultSet rs = null; - // - MAging aging = null; - int counter = 0; - int rows = 0; - int AD_PInstance_ID = getAD_PInstance_ID(); - // - try - { - pstmt = DB.prepareStatement(finalSql, get_TrxName()); - rs = pstmt.executeQuery(); - while (rs.next()) - { - int C_BP_Group_ID = rs.getInt(1); - int C_BPartner_ID = rs.getInt(2); - int C_Invoice_ID = p_IsListInvoices ? rs.getInt(3) : 0; - int C_InvoicePaySchedule_ID = p_IsListInvoices ? rs.getInt(4) : 0; - int C_Currency_ID = rs.getInt(5); - boolean IsSOTrx = "Y".equals(rs.getString(6)); - // - //Timestamp DateInvoiced = rs.getTimestamp(7); - //int NetDays = rs.getInt(8); - Timestamp DueDate = rs.getTimestamp(9); - // Days Due - int DaysDue = rs.getInt(10) // based on today - + m_statementOffset; - // - BigDecimal GrandTotal = rs.getBigDecimal(11); - //BigDecimal PaidAmt = rs.getBigDecimal(12); - BigDecimal OpenAmt = rs.getBigDecimal(13); - // - int C_Activity_ID = p_IsListInvoices ? rs.getInt(14) : 0; - int C_Campaign_ID = p_IsListInvoices ? rs.getInt(15) : 0; - int C_Project_ID = p_IsListInvoices ? rs.getInt(16) : 0; - int AD_Org_ID = rs.getInt(17); - - rows++; - // New Aging Row - if (aging == null // Key - || AD_PInstance_ID != aging.getAD_PInstance_ID() - || C_BPartner_ID != aging.getC_BPartner_ID() - || C_Currency_ID != aging.getC_Currency_ID() - || C_Invoice_ID != aging.getC_Invoice_ID() - || C_InvoicePaySchedule_ID != aging.getC_InvoicePaySchedule_ID()) - { - if (aging != null) - { - aging.saveEx(); - if (log.isLoggable(Level.FINE)) log.fine("#" + ++counter + " - " + aging); - } - aging = new MAging (getCtx(), AD_PInstance_ID, p_StatementDate, - C_BPartner_ID, C_Currency_ID, - C_Invoice_ID, C_InvoicePaySchedule_ID, - C_BP_Group_ID, AD_Org_ID, DueDate, IsSOTrx, get_TrxName()); - aging.setC_Activity_ID(C_Activity_ID); - aging.setC_Campaign_ID(C_Campaign_ID); - aging.setC_Project_ID(C_Project_ID); - aging.setDateAcct(p_DateAcct); - } - // Fill Buckets - aging.add (DueDate, DaysDue, GrandTotal, OpenAmt); - } - if (aging != null) - { - aging.saveEx(); - counter++; - if (log.isLoggable(Level.FINE)) log.fine("#" + counter + " - " + aging); - } - } - catch (SQLException e) - { - throw new DBException(e, finalSql); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - // - if (log.isLoggable(Level.INFO)) log.info("#" + counter + " - rows=" + rows); - return ""; - - } // doIt - -} // Aging +/****************************************************************************** + * Product: Adempiere ERP & CRM Smart Business Solution * + * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program; if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + * For the text or an alternative of this public license, you may reach us * + * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * + * or via info@compiere.org or http://www.compiere.org/license.html * + *****************************************************************************/ +package balinusa.midsuit.process; + +import java.math.BigDecimal; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.logging.Level; + +import org.adempiere.exceptions.DBException; +import org.compiere.model.MAging; +import org.compiere.model.MRole; +import org.compiere.print.ReportEngine; +import org.compiere.process.ProcessInfoParameter; +import org.compiere.process.SvrProcess; +import org.compiere.util.DB; +import org.compiere.util.TimeUtil; + +/** + * Invoice Aging Report. + * Based on RV_Aging. + * @author Jorg Janke + * @author victor.perez@e-evolution.com FR 1933937 Is necessary a new Aging to Date + * @see http://sourceforge.net/tracker/index.php?func=detail&aid=1933937&group_id=176962&atid=879335 + * @author Carlos Ruiz - globalqss BF 2655587 Multi-org not supported in Aging + * @see https://sourceforge.net/tracker2/?func=detail&aid=2655587&group_id=176962&atid=879332 + * @version $Id: Aging.java,v 1.5 2006/10/07 00:58:44 jjanke Exp $ + */ +public class MID_ProcessRVAging extends SvrProcess +{ + /** The date to calculate the days due from */ + private Timestamp p_StatementDate = null; + //FR 1933937 + private boolean p_DateAcct = false; + private boolean p_IsSOTrx = false; + private int p_C_Currency_ID = 0; + private int p_AD_Org_ID = 0; + private int p_C_BP_Group_ID = 0; + private int p_C_BPartner_ID = 0; + private boolean p_IsListInvoices = false; + /** Number of days between today and statement date */ + private int m_statementOffset = 0; + + /** + * Prepare - e.g., get Parameters. + */ + protected void prepare() + { + ProcessInfoParameter[] para = getParameter(); + for (int i = 0; i < para.length; i++) + { + String name = para[i].getParameterName(); + if (para[i].getParameter() == null) + ; + else if (name.equals("StatementDate")) + p_StatementDate = (Timestamp)para[i].getParameter(); + else if (name.equals("DateAcct")) + p_DateAcct = "Y".equals(para[i].getParameter()); + else if (name.equals("IsSOTrx")) + p_IsSOTrx = "Y".equals(para[i].getParameter()); + else if (name.equals("C_Currency_ID")) + p_C_Currency_ID = ((BigDecimal)para[i].getParameter()).intValue(); + else if (name.equals("AD_Org_ID")) + p_AD_Org_ID = ((BigDecimal)para[i].getParameter()).intValue(); + else if (name.equals("C_BP_Group_ID")) + p_C_BP_Group_ID = ((BigDecimal)para[i].getParameter()).intValue(); + else if (name.equals("C_BPartner_ID")) + p_C_BPartner_ID = ((BigDecimal)para[i].getParameter()).intValue(); + else if (name.equals("IsListInvoices")) + p_IsListInvoices = "Y".equals(para[i].getParameter()); + else + log.log(Level.SEVERE, "Unknown Parameter: " + name); + } + if (p_StatementDate == null) + p_StatementDate = new Timestamp (System.currentTimeMillis()); + else + m_statementOffset = TimeUtil.getDaysBetween( + new Timestamp(System.currentTimeMillis()), p_StatementDate); + } // prepare + + /** + * DoIt + * @return Message + * @throws Exception + */ + protected String doIt() throws Exception + { + if (log.isLoggable(Level.INFO)) log.info("StatementDate=" + p_StatementDate + ", IsSOTrx=" + p_IsSOTrx + + ", C_Currency_ID=" + p_C_Currency_ID + ", AD_Org_ID=" + p_AD_Org_ID + + ", C_BP_Group_ID=" + p_C_BP_Group_ID + ", C_BPartner_ID=" + p_C_BPartner_ID + + ", IsListInvoices=" + p_IsListInvoices); + //FR 1933937 + String dateacct = DB.TO_DATE(p_StatementDate); + + StringBuilder sql = new StringBuilder(); + sql.append("SELECT bp.C_BP_Group_ID, oi.C_BPartner_ID,oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID, " // 1..4 + + "oi.C_Currency_ID, oi.IsSOTrx, " // 5..6 + + "oi.DateInvoiced, oi.NetDays,oi.DueDate,oi.DaysDue, "); // 7..10 + if (p_C_Currency_ID == 0) + { + if (!p_DateAcct)//FR 1933937 + { + sql.append(" oi.GrandTotal, oi.PaidAmt, oi.OpenAmt "); // 11..13 + } + else + { + sql.append(" oi.GrandTotal, invoicePaidToDate(oi.C_Invoice_ID, oi.C_Currency_ID, 1,"+dateacct+") AS PaidAmt, invoiceOpenToDate(oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID,"+dateacct+") AS OpenAmt "); // 11..13 + } + } + else + { + String s = ",oi.C_Currency_ID," + p_C_Currency_ID + ",oi.DateAcct,oi.C_ConversionType_ID,oi.AD_Client_ID,oi.AD_Org_ID)"; + sql.append("currencyConvert(oi.GrandTotal").append(s); // 11 + if (!p_DateAcct) + { + sql.append(", currencyConvert(oi.PaidAmt").append(s) // 12 + .append(", currencyConvert(oi.OpenAmt").append(s); // 13 + } + else + { + sql.append(", currencyConvert(invoicePaidToDate(oi.C_Invoice_ID, oi.C_Currency_ID, 1,"+dateacct+")").append(s) // 12 + .append(", currencyConvert(invoiceOpenToDate(oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID,"+dateacct+")").append(s); // 13 + } + } + sql.append(",oi.C_Activity_ID,oi.C_Campaign_ID,oi.C_Project_ID,oi.AD_Org_ID "); // 14..17 + if (!p_DateAcct)//FR 1933937 + { + sql.append(" FROM RV_OpenItem oi"); + } + else + { + sql.append(" FROM RV_OpenItemToDate oi"); + } + + sql.append(" INNER JOIN C_BPartner bp ON (oi.C_BPartner_ID=bp.C_BPartner_ID) " + + "WHERE oi.ISSoTrx=").append(p_IsSOTrx ? "'Y'" : "'N'"); + if (p_C_BPartner_ID > 0) + { + sql.append(" AND oi.C_BPartner_ID=").append(p_C_BPartner_ID); + } + else if (p_C_BP_Group_ID > 0) + { + sql.append(" AND bp.C_BP_Group_ID=").append(p_C_BP_Group_ID); + } + if (p_AD_Org_ID > 0) // BF 2655587 + { + sql.append(" AND oi.AD_Org_ID=").append(p_AD_Org_ID); + } + + if (p_DateAcct)//FR 1933937 + { + sql.append(" AND invoiceOpenToDate(oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID,"+dateacct+") <> 0 "); + } + + sql.append(" ORDER BY oi.C_BPartner_ID, oi.C_Currency_ID, oi.C_Invoice_ID"); + + if (log.isLoggable(Level.FINEST)) log.finest(sql.toString()); +// String finalSql = MRole.getDefault(getCtx(), false).addAccessSQL( +// sql.toString(), "oi", MRole.SQL_FULLYQUALIFIED, MRole.SQL_RO); + String finalSql = sql.toString(); + log.finer(finalSql); + + PreparedStatement pstmt = null; + ResultSet rs = null; + // + MAging aging = null; + int counter = 0; + int rows = 0; + int AD_PInstance_ID = getAD_PInstance_ID(); + // + try + { + pstmt = DB.prepareStatement(finalSql, get_TrxName()); + rs = pstmt.executeQuery(); + while (rs.next()) + { + int C_BP_Group_ID = rs.getInt(1); + int C_BPartner_ID = rs.getInt(2); + int C_Invoice_ID = p_IsListInvoices ? rs.getInt(3) : 0; + int C_InvoicePaySchedule_ID = p_IsListInvoices ? rs.getInt(4) : 0; + int C_Currency_ID = rs.getInt(5); + boolean IsSOTrx = "Y".equals(rs.getString(6)); + // + //Timestamp DateInvoiced = rs.getTimestamp(7); + //int NetDays = rs.getInt(8); + Timestamp DueDate = rs.getTimestamp(9); + // Days Due + int DaysDue = rs.getInt(10) // based on today + + m_statementOffset; + // + BigDecimal GrandTotal = rs.getBigDecimal(11); + //BigDecimal PaidAmt = rs.getBigDecimal(12); + BigDecimal OpenAmt = rs.getBigDecimal(13); + // + int C_Activity_ID = p_IsListInvoices ? rs.getInt(14) : 0; + int C_Campaign_ID = p_IsListInvoices ? rs.getInt(15) : 0; + int C_Project_ID = p_IsListInvoices ? rs.getInt(16) : 0; + int AD_Org_ID = rs.getInt(17); + + rows++; + // New Aging Row + if (aging == null // Key + || AD_PInstance_ID != aging.getAD_PInstance_ID() + || C_BPartner_ID != aging.getC_BPartner_ID() + || C_Currency_ID != aging.getC_Currency_ID() + || C_Invoice_ID != aging.getC_Invoice_ID() + || C_InvoicePaySchedule_ID != aging.getC_InvoicePaySchedule_ID()) + { + if (aging != null) + { + aging.saveEx(); + if (log.isLoggable(Level.FINE)) log.fine("#" + ++counter + " - " + aging); + } + aging = new MAging (getCtx(), AD_PInstance_ID, p_StatementDate, + C_BPartner_ID, C_Currency_ID, + C_Invoice_ID, C_InvoicePaySchedule_ID, + C_BP_Group_ID, AD_Org_ID, DueDate, IsSOTrx, get_TrxName()); + aging.setC_Activity_ID(C_Activity_ID); + aging.setC_Campaign_ID(C_Campaign_ID); + aging.setC_Project_ID(C_Project_ID); + aging.setDateAcct(p_DateAcct); + } + // Fill Buckets + aging.add (DueDate, DaysDue, GrandTotal, OpenAmt); + } + if (aging != null) + { + aging.saveEx(); + counter++; + if (log.isLoggable(Level.FINE)) log.fine("#" + counter + " - " + aging); + } + } + catch (SQLException e) + { + throw new DBException(e, finalSql); + } + finally + { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } + // + if (log.isLoggable(Level.INFO)) log.info("#" + counter + " - rows=" + rows); + return ""; + + } // doIt + +} // Aging diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessUnrealizedGainLoss.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessUnrealizedGainLoss.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessUnrealizedGainLoss.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessUnrealizedGainLoss.java index b6b2c7c..b5f3fb4 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProcessUnrealizedGainLoss.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProcessUnrealizedGainLoss.java @@ -1,191 +1,191 @@ -package andromedia.midsuit.process; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.List; - -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.MAccount; -import org.compiere.model.MAcctSchema; -import org.compiere.model.MConversionRate; -import org.compiere.model.MInvoice; -import org.compiere.model.MJournal; -import org.compiere.model.MJournalLine; -import org.compiere.model.MPeriod; -import org.compiere.model.Query; -import org.compiere.process.DocAction; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; -import org.compiere.util.Env; - -import andromedia.midsuit.model.MID_UnrealizedRate; -import andromedia.midsuit.model.MID_UnrealizedRateLine; - -public class MID_ProcessUnrealizedGainLoss extends SvrProcess{ - - MID_UnrealizedRate unRate = null; - - @Override - protected void prepare() { - unRate = new MID_UnrealizedRate(getCtx(), getRecord_ID(), get_TrxName()); - - if(unRate.getGL_Journal_ID()>0){ - if(!unRate.getGL_Journal().getDocStatus().equals(DocAction.STATUS_Reversed)) - throw new AdempiereException("Journal Already Created Draft / Completed !!!"); - } - } - - @Override - protected String doIt() throws Exception { - MAcctSchema[] ass = MAcctSchema.getClientAcctSchema(getCtx(), getAD_Client_ID()); - MJournal journal = null; - MPeriod period = null; - List Invoices = new Query(getCtx(), MInvoice.Table_Name, "InvoiceOpen(C_Invoice.C_Invoice_ID, 0)>0 AND C_Invoice.C_Currency_ID != ? AND DocStatus IN (?) AND C_Invoice.DateAcct<=?", get_TrxName()) - .setParameters(new Object[] { ass[0].getC_Currency_ID(), DocAction.STATUS_Completed, unRate.getC_Period().getEndDate() }) - .setOnlyActiveRecords(true) - .setClient_ID(true) - .list(); - - - - if(Invoices.size()>0){ - period = new MPeriod(getCtx(), unRate.getC_Period_ID(), get_TrxName()); - journal = createGL_Journal(ass[0]); - unRate.setGL_Journal_ID(journal.get_ID()); - unRate.saveEx(); - } - - DB.executeUpdateEx("DELETE FROM MID_UnrealizedRateLine WHERE MID_UnrealizedRate_ID =?", new Object[] { unRate.getMID_UnrealizedRate_ID() }, null); - for(MInvoice invoice : Invoices){ - BigDecimal lastUnrealizedRate = getUnrealizedLastJournal(invoice.get_ID()); - MID_UnrealizedRateLine unRateLine = new MID_UnrealizedRateLine(getCtx(), 0, get_TrxName()); - BigDecimal openAmt = invoice.getOpenAmt(); - unRateLine.setAD_Org_ID(unRate.getAD_Org_ID()); - unRateLine.setMID_UnrealizedRate_ID(unRate.getMID_UnrealizedRate_ID()); - unRateLine.setOpenAmt(openAmt); - unRateLine.setC_Invoice_ID(invoice.getC_Invoice_ID()); - unRateLine.setIsSOTrx(invoice.isSOTrx()); - - BigDecimal transactionRate = MConversionRate.getRate(invoice.getC_Currency_ID() - , ass[0].getC_Currency_ID(), invoice.getDateAcct(), invoice.getC_ConversionType_ID(), invoice.getAD_Client_ID(), - invoice.getAD_Org_ID()); - BigDecimal endMonthRate = MConversionRate.getRate(invoice.getC_Currency_ID() - , ass[0].getC_Currency_ID(), period.getEndDate(), unRate.getC_ConversionType_ID(), invoice.getAD_Client_ID(), - invoice.getAD_Org_ID()); - - if(lastUnrealizedRate.signum()>0) - transactionRate = lastUnrealizedRate; - if(transactionRate == null) - throw new AdempiereException("Transaction Rate Invoice No."+invoice.getDocumentNo()+" at "+invoice.getDateAcct().toString()+" not found !!!"); - if(endMonthRate == null) - throw new AdempiereException("Rate Period End Not Found !!!"); - unRateLine.setCurrencyRate(transactionRate); - unRateLine.setCurrencyRateEnd(endMonthRate); - - transactionRate = transactionRate.multiply(openAmt); - endMonthRate = endMonthRate.multiply(openAmt); - BigDecimal gainLossAmt = transactionRate.subtract(endMonthRate); - - MJournalLine drJournal = null; - MJournalLine crJournal = null; - - int C_ValidCombinationGain_ID = ass[0].getAcctSchemaDefault().getUnrealizedGain_Acct(); - int C_ValidCombinationLoss_ID = ass[0].getAcctSchemaDefault().getUnrealizedLoss_Acct(); - int C_ValidCombinationAR_ID = DB.getSQLValueEx(get_TrxName(), - "SELECT C_Receivable_Acct FROM C_BP_Customer_Acct WHERE C_BPartner_ID =? AND C_AcctSchema_ID =?", - new Object[] { invoice.getC_BPartner_ID(), ass[0].getC_AcctSchema_ID() }); - int C_ValidCombinationAP_ID = DB.getSQLValueEx(get_TrxName(), - "SELECT V_Liability_Acct FROM C_BP_Vendor_Acct WHERE C_BPartner_ID =? AND C_AcctSchema_ID =?", - new Object[] { invoice.getC_BPartner_ID(), ass[0].getC_AcctSchema_ID() }); - if(invoice.isSOTrx()){ - if(gainLossAmt.signum()<0){ - drJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationGain_ID).getAccount_ID(), Env.ZERO, gainLossAmt.abs(), - "AR Gain for Invoice No. "+invoice.getDocumentNo()); - crJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationAR_ID).getAccount_ID(), gainLossAmt.abs(), Env.ZERO, - "AR Gain for Invoice No. "+invoice.getDocumentNo()); - }else{ - drJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationLoss_ID).getAccount_ID(), gainLossAmt, Env.ZERO, - "AR Loss for Invoice No. "+invoice.getDocumentNo()); - crJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationAR_ID).getAccount_ID(), Env.ZERO, gainLossAmt, - "AR Loss for Invoice No. "+invoice.getDocumentNo()); - } - }else{ - if(gainLossAmt.signum()<0){ - drJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationAP_ID).getAccount_ID(), Env.ZERO, gainLossAmt.abs(), - "AP Loss for Invoice No. "+invoice.getDocumentNo()); - crJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationLoss_ID).getAccount_ID(), gainLossAmt.abs(),Env.ZERO, - "AP Loss for Invoice No. "+invoice.getDocumentNo()); - }else{ - drJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationAP_ID).getAccount_ID(), gainLossAmt,Env.ZERO, - "AP Gain for Invoice No. "+invoice.getDocumentNo()); - crJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationGain_ID).getAccount_ID(), Env.ZERO,gainLossAmt, - "AP Gain for Invoice No. "+invoice.getDocumentNo()); - } - } - log.severe(String.valueOf(crJournal.getGL_Journal_ID())); - log.severe(String.valueOf(drJournal.getGL_Journal_ID())); - unRateLine.saveEx(); - unRateLine.setGL_JournalLineCr_ID(crJournal.getGL_JournalLine_ID()); - unRateLine.setGL_JournalLineDr_ID(drJournal.getGL_JournalLine_ID()); - unRateLine.saveEx(); - } - - unRate.saveEx(); - return ""; - } - - private MJournalLine createJournalLines(MJournal jParent, MID_UnrealizedRateLine unRateLine, int C_ElementValue_ID, BigDecimal drAmt, BigDecimal crAmt, String desc) { - MJournalLine retValue = new MJournalLine(jParent); - retValue.setAccount_ID(C_ElementValue_ID); - retValue.setAmtSourceDr(drAmt); - retValue.setAmtSourceCr(crAmt); - retValue.setDescription(desc); - retValue.saveEx(); - return retValue; - } - - private MJournal createGL_Journal(MAcctSchema acctSchema) { - int C_DocType_ID = DB.getSQLValueEx(get_TrxName(), "SELECT C_DocType_ID FROM C_DocType WHERE Name=? AND AD_Client_ID =?", new Object[] {"Jurnal Memorial", getAD_Client_ID()}); - int GL_Category_ID = DB.getSQLValueEx(get_TrxName(), "SELECT GL_Category_ID FROM GL_Category WHERE Name =? AND AD_Client_ID =?", new Object[] {"Manual", getAD_Client_ID()}); - MJournal retValue = new MJournal(getCtx(), 0, get_TrxName()); - retValue.setAD_Org_ID(Env.getAD_Org_ID(getCtx())); - retValue.setC_AcctSchema_ID(acctSchema.getC_AcctSchema_ID()); - retValue.setC_DocType_ID(C_DocType_ID); - retValue.setGL_Category_ID(GL_Category_ID); - retValue.setC_Period_ID(unRate.getC_Period_ID()); - retValue.setDateAcct(unRate.getC_Period().getEndDate()); - retValue.setDateDoc(unRate.getC_Period().getEndDate()); - retValue.setC_Currency_ID(acctSchema.getC_Currency_ID()); - retValue.setC_ConversionType_ID(unRate.getC_ConversionType_ID()); - retValue.setDescription("Journal Unrealized Gain/Loss For Period "+unRate.getC_Period().getName()); - retValue.saveEx(); - return retValue; - } - - private BigDecimal getUnrealizedLastJournal(int C_Invoice_ID){ - PreparedStatement pstmt = null; - ResultSet rs = null; - String sql = " SELECT url.CurrencyRateEnd, p.EndDate " - + " FROM MID_UnrealizedRateLine url JOIN MID_UnrealizedRate ur on url.MID_UnrealizedRate_ID = ur.MID_UnrealizedRate_ID JOIN C_Period p on P.C_Period_ID = ur.C_Period_ID " - + " WHERE ur.Processed='Y' AND C_Invoice_ID =? ORDER BY p.EndDate DESC"; - BigDecimal retValue = Env.ZERO; - - pstmt = DB.prepareStatement(sql, null); - try { - pstmt.setInt(1, C_Invoice_ID); - rs = pstmt.executeQuery(); - if (rs.next()) { - retValue = rs.getBigDecimal(1); - } - } catch (SQLException e) { - e.printStackTrace(); - }finally { - DB.close(rs, pstmt); - pstmt = null; - rs = null; - } - return retValue; - } -} +package balinusa.midsuit.process; + +import java.math.BigDecimal; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MAccount; +import org.compiere.model.MAcctSchema; +import org.compiere.model.MConversionRate; +import org.compiere.model.MInvoice; +import org.compiere.model.MJournal; +import org.compiere.model.MJournalLine; +import org.compiere.model.MPeriod; +import org.compiere.model.Query; +import org.compiere.process.DocAction; +import org.compiere.process.SvrProcess; +import org.compiere.util.DB; +import org.compiere.util.Env; + +import balinusa.midsuit.model.MID_UnrealizedRate; +import balinusa.midsuit.model.MID_UnrealizedRateLine; + +public class MID_ProcessUnrealizedGainLoss extends SvrProcess{ + + MID_UnrealizedRate unRate = null; + + @Override + protected void prepare() { + unRate = new MID_UnrealizedRate(getCtx(), getRecord_ID(), get_TrxName()); + + if(unRate.getGL_Journal_ID()>0){ + if(!unRate.getGL_Journal().getDocStatus().equals(DocAction.STATUS_Reversed)) + throw new AdempiereException("Journal Already Created Draft / Completed !!!"); + } + } + + @Override + protected String doIt() throws Exception { + MAcctSchema[] ass = MAcctSchema.getClientAcctSchema(getCtx(), getAD_Client_ID()); + MJournal journal = null; + MPeriod period = null; + List Invoices = new Query(getCtx(), MInvoice.Table_Name, "InvoiceOpen(C_Invoice.C_Invoice_ID, 0)>0 AND C_Invoice.C_Currency_ID != ? AND DocStatus IN (?) AND C_Invoice.DateAcct<=?", get_TrxName()) + .setParameters(new Object[] { ass[0].getC_Currency_ID(), DocAction.STATUS_Completed, unRate.getC_Period().getEndDate() }) + .setOnlyActiveRecords(true) + .setClient_ID(true) + .list(); + + + + if(Invoices.size()>0){ + period = new MPeriod(getCtx(), unRate.getC_Period_ID(), get_TrxName()); + journal = createGL_Journal(ass[0]); + unRate.setGL_Journal_ID(journal.get_ID()); + unRate.saveEx(); + } + + DB.executeUpdateEx("DELETE FROM MID_UnrealizedRateLine WHERE MID_UnrealizedRate_ID =?", new Object[] { unRate.getMID_UnrealizedRate_ID() }, null); + for(MInvoice invoice : Invoices){ + BigDecimal lastUnrealizedRate = getUnrealizedLastJournal(invoice.get_ID()); + MID_UnrealizedRateLine unRateLine = new MID_UnrealizedRateLine(getCtx(), 0, get_TrxName()); + BigDecimal openAmt = invoice.getOpenAmt(); + unRateLine.setAD_Org_ID(unRate.getAD_Org_ID()); + unRateLine.setMID_UnrealizedRate_ID(unRate.getMID_UnrealizedRate_ID()); + unRateLine.setOpenAmt(openAmt); + unRateLine.setC_Invoice_ID(invoice.getC_Invoice_ID()); + unRateLine.setIsSOTrx(invoice.isSOTrx()); + + BigDecimal transactionRate = MConversionRate.getRate(invoice.getC_Currency_ID() + , ass[0].getC_Currency_ID(), invoice.getDateAcct(), invoice.getC_ConversionType_ID(), invoice.getAD_Client_ID(), + invoice.getAD_Org_ID()); + BigDecimal endMonthRate = MConversionRate.getRate(invoice.getC_Currency_ID() + , ass[0].getC_Currency_ID(), period.getEndDate(), unRate.getC_ConversionType_ID(), invoice.getAD_Client_ID(), + invoice.getAD_Org_ID()); + + if(lastUnrealizedRate.signum()>0) + transactionRate = lastUnrealizedRate; + if(transactionRate == null) + throw new AdempiereException("Transaction Rate Invoice No."+invoice.getDocumentNo()+" at "+invoice.getDateAcct().toString()+" not found !!!"); + if(endMonthRate == null) + throw new AdempiereException("Rate Period End Not Found !!!"); + unRateLine.setCurrencyRate(transactionRate); + unRateLine.setCurrencyRateEnd(endMonthRate); + + transactionRate = transactionRate.multiply(openAmt); + endMonthRate = endMonthRate.multiply(openAmt); + BigDecimal gainLossAmt = transactionRate.subtract(endMonthRate); + + MJournalLine drJournal = null; + MJournalLine crJournal = null; + + int C_ValidCombinationGain_ID = ass[0].getAcctSchemaDefault().getUnrealizedGain_Acct(); + int C_ValidCombinationLoss_ID = ass[0].getAcctSchemaDefault().getUnrealizedLoss_Acct(); + int C_ValidCombinationAR_ID = DB.getSQLValueEx(get_TrxName(), + "SELECT C_Receivable_Acct FROM C_BP_Customer_Acct WHERE C_BPartner_ID =? AND C_AcctSchema_ID =?", + new Object[] { invoice.getC_BPartner_ID(), ass[0].getC_AcctSchema_ID() }); + int C_ValidCombinationAP_ID = DB.getSQLValueEx(get_TrxName(), + "SELECT V_Liability_Acct FROM C_BP_Vendor_Acct WHERE C_BPartner_ID =? AND C_AcctSchema_ID =?", + new Object[] { invoice.getC_BPartner_ID(), ass[0].getC_AcctSchema_ID() }); + if(invoice.isSOTrx()){ + if(gainLossAmt.signum()<0){ + drJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationGain_ID).getAccount_ID(), Env.ZERO, gainLossAmt.abs(), + "AR Gain for Invoice No. "+invoice.getDocumentNo()); + crJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationAR_ID).getAccount_ID(), gainLossAmt.abs(), Env.ZERO, + "AR Gain for Invoice No. "+invoice.getDocumentNo()); + }else{ + drJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationLoss_ID).getAccount_ID(), gainLossAmt, Env.ZERO, + "AR Loss for Invoice No. "+invoice.getDocumentNo()); + crJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationAR_ID).getAccount_ID(), Env.ZERO, gainLossAmt, + "AR Loss for Invoice No. "+invoice.getDocumentNo()); + } + }else{ + if(gainLossAmt.signum()<0){ + drJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationAP_ID).getAccount_ID(), Env.ZERO, gainLossAmt.abs(), + "AP Loss for Invoice No. "+invoice.getDocumentNo()); + crJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationLoss_ID).getAccount_ID(), gainLossAmt.abs(),Env.ZERO, + "AP Loss for Invoice No. "+invoice.getDocumentNo()); + }else{ + drJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationAP_ID).getAccount_ID(), gainLossAmt,Env.ZERO, + "AP Gain for Invoice No. "+invoice.getDocumentNo()); + crJournal = createJournalLines(journal, unRateLine, MAccount.get(getCtx(), C_ValidCombinationGain_ID).getAccount_ID(), Env.ZERO,gainLossAmt, + "AP Gain for Invoice No. "+invoice.getDocumentNo()); + } + } + log.severe(String.valueOf(crJournal.getGL_Journal_ID())); + log.severe(String.valueOf(drJournal.getGL_Journal_ID())); + unRateLine.saveEx(); + unRateLine.setGL_JournalLineCr_ID(crJournal.getGL_JournalLine_ID()); + unRateLine.setGL_JournalLineDr_ID(drJournal.getGL_JournalLine_ID()); + unRateLine.saveEx(); + } + + unRate.saveEx(); + return ""; + } + + private MJournalLine createJournalLines(MJournal jParent, MID_UnrealizedRateLine unRateLine, int C_ElementValue_ID, BigDecimal drAmt, BigDecimal crAmt, String desc) { + MJournalLine retValue = new MJournalLine(jParent); + retValue.setAccount_ID(C_ElementValue_ID); + retValue.setAmtSourceDr(drAmt); + retValue.setAmtSourceCr(crAmt); + retValue.setDescription(desc); + retValue.saveEx(); + return retValue; + } + + private MJournal createGL_Journal(MAcctSchema acctSchema) { + int C_DocType_ID = DB.getSQLValueEx(get_TrxName(), "SELECT C_DocType_ID FROM C_DocType WHERE Name=? AND AD_Client_ID =?", new Object[] {"Jurnal Memorial", getAD_Client_ID()}); + int GL_Category_ID = DB.getSQLValueEx(get_TrxName(), "SELECT GL_Category_ID FROM GL_Category WHERE Name =? AND AD_Client_ID =?", new Object[] {"Manual", getAD_Client_ID()}); + MJournal retValue = new MJournal(getCtx(), 0, get_TrxName()); + retValue.setAD_Org_ID(Env.getAD_Org_ID(getCtx())); + retValue.setC_AcctSchema_ID(acctSchema.getC_AcctSchema_ID()); + retValue.setC_DocType_ID(C_DocType_ID); + retValue.setGL_Category_ID(GL_Category_ID); + retValue.setC_Period_ID(unRate.getC_Period_ID()); + retValue.setDateAcct(unRate.getC_Period().getEndDate()); + retValue.setDateDoc(unRate.getC_Period().getEndDate()); + retValue.setC_Currency_ID(acctSchema.getC_Currency_ID()); + retValue.setC_ConversionType_ID(unRate.getC_ConversionType_ID()); + retValue.setDescription("Journal Unrealized Gain/Loss For Period "+unRate.getC_Period().getName()); + retValue.saveEx(); + return retValue; + } + + private BigDecimal getUnrealizedLastJournal(int C_Invoice_ID){ + PreparedStatement pstmt = null; + ResultSet rs = null; + String sql = " SELECT url.CurrencyRateEnd, p.EndDate " + + " FROM MID_UnrealizedRateLine url JOIN MID_UnrealizedRate ur on url.MID_UnrealizedRate_ID = ur.MID_UnrealizedRate_ID JOIN C_Period p on P.C_Period_ID = ur.C_Period_ID " + + " WHERE ur.Processed='Y' AND C_Invoice_ID =? ORDER BY p.EndDate DESC"; + BigDecimal retValue = Env.ZERO; + + pstmt = DB.prepareStatement(sql, null); + try { + pstmt.setInt(1, C_Invoice_ID); + rs = pstmt.executeQuery(); + if (rs.next()) { + retValue = rs.getBigDecimal(1); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DB.close(rs, pstmt); + pstmt = null; + rs = null; + } + return retValue; + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProductionCreate.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProductionCreate.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProductionCreate.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProductionCreate.java index 230946c..0821c53 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_ProductionCreate.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_ProductionCreate.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.math.BigDecimal; import java.util.logging.Level; @@ -8,7 +8,7 @@ import org.compiere.process.SvrProcess; import org.compiere.util.AdempiereUserError; import org.compiere.util.DB; -import andromedia.midsuit.model.MID_PPO; +import balinusa.midsuit.model.MID_PPO; /** diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_RevokeCeisa40.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_RevokeCeisa40.java similarity index 91% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_RevokeCeisa40.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_RevokeCeisa40.java index 5eb62ef..b42713b 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_RevokeCeisa40.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_RevokeCeisa40.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.util.ArrayList; import java.util.List; @@ -9,10 +9,10 @@ import org.compiere.model.MOrder; import org.compiere.model.Query; import org.compiere.process.SvrProcess; -import andromedia.midsuit.model.MID_Ceisa_Order; -import andromedia.midsuit.model.X_mid_ceisa_entitas; -import andromedia.midsuit.model.X_mid_ceisa_orderline; -import andromedia.midsuit.model.X_mid_ceisa_upload; +import balinusa.midsuit.model.MID_Ceisa_Order; +import balinusa.midsuit.model.X_mid_ceisa_entitas; +import balinusa.midsuit.model.X_mid_ceisa_orderline; +import balinusa.midsuit.model.X_mid_ceisa_upload; public class MID_RevokeCeisa40 extends SvrProcess { X_mid_ceisa_upload ceisa = null; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_TPBUpdateOrder.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_TPBUpdateOrder.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_TPBUpdateOrder.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_TPBUpdateOrder.java index ae321fa..d3db358 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_TPBUpdateOrder.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_TPBUpdateOrder.java @@ -1,177 +1,177 @@ -package andromedia.midsuit.process; - -import java.math.BigDecimal; -import java.util.List; - -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.MOrder; -import org.compiere.model.MOrderLine; -import org.compiere.model.MRMA; -import org.compiere.model.MRequisition; -import org.compiere.model.MRequisitionLine; -import org.compiere.model.MUOMConversion; -import org.compiere.model.Query; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.compiere.util.Msg; - -import andromedia.midsuit.model.X_MID_UploadTPB; -import andromedia.midsuit.model.X_MID_UploadTPBLine; -import andromedia.midsuit.model.X_MID_UploadTPBLineDet; - -public class MID_TPBUpdateOrder extends SvrProcess{ - X_MID_UploadTPB tpb = null; - @Override - protected void prepare() { - // TODO Auto-generated method stub - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - } - tpb = new X_MID_UploadTPB(getCtx(), getRecord_ID(), get_TrxName()); - } - - @Override - protected String doIt() throws Exception { - String whereClause = " MID_UploadTPB_ID =? AND Processed='N' AND (M_Requisition_ID IS NOT NULL)"; - List lines = new Query(getCtx(), X_MID_UploadTPBLine.Table_Name, whereClause, get_TrxName()) - .setParameters(new Object[] { getRecord_ID() }) - .setOnlyActiveRecords(true) - .list(); - - for(X_MID_UploadTPBLine line : lines) { - boolean isRetur = line.isReturn(); - if(line.getM_Requisition_ID()>0 && !isRetur) { - MOrder order = createPurchaseOrder(line); - createPurchaseOrderLine(line, order); - line.setC_Order_ID(order.get_ID()); - }else if (line.getM_RMA_ID()>0 && isRetur) { - createCustomerRMA(line); -// MRMA RMA = createCustomerRMA(line); -// createCustomerRMALine(line, RMA); -// line.setM_RMA_ID(RMA.get_ID()); - }else { - MOrder order = createPurchaseOrder(line); - createPurchaseOrderLine(line, order); - line.setC_Order_ID(order.get_ID()); - } - line.setProcessed(true); - line.saveEx(); - } - - int countNotProcessed = DB.getSQLValueEx(get_TrxName(), "SELECT COUNT(*) FROM MID_UploadTPBLine WHERE Processed =? AND MID_UploadTPB_ID =?", new Object[] { false, getRecord_ID() }); - if(countNotProcessed<=0) { - tpb.setProcessed(true); - tpb.saveEx(); - } - return ""; - - } - - private void createCustomerRMALine(X_MID_UploadTPBLine line, MRMA RMA) { - String whereClause = " MID_UploadTPBLine_ID =?"; - List detailLines = new Query(getCtx(), X_MID_UploadTPBLineDet.Table_Name, whereClause, get_TrxName()) - .setParameters(new Object[] { line.get_ID() }) - .setOnlyActiveRecords(true) - .list(); -// int C_Tax_ID = DB.getSQLValueEx(get_TrxName(), "SELECT C_Tax_ID FROM C_Tax WHERE Name=? AND AD_Client_ID =?", new Object[] { "Exempt", getAD_Client_ID()}); -// for(X_MID_UploadTPBLineDet detailLine : detailLines) { - -// MRMALine rmaLine = new MRMALine(getCtx(), 0, get_TrxName()); -// rmaLine.setAD_Org_ID(RMA.getAD_Org_ID()); -// rmaLine.setM_Product_ID(detailLine.getM_Product_ID()); -// rmaLine.setQty(detailLine.getQty()); -// rmaLine.setM_InOutLine_ID(detailLine.getM_InOutLine_ID()); -// rmaLine.setC_Tax_ID(C_Tax_ID); -// rmaLine.saveEx(); -// } - } - - private MRMA createCustomerRMA(X_MID_UploadTPBLine line) { - MRMA retValue = new MRMA(getCtx(), line.getM_RMA_ID(), get_TrxName()); -// retValue.setAD_Org_ID(line.getAD_Org_ID()); - retValue.set_ValueNoCheck("NoAju1", line.getNoAju()); - retValue.set_ValueNoCheck("RegisterDate", line.getRegisterDate()); - retValue.set_ValueNoCheck("RegisterNo", line.getRegisterNo()); - retValue.set_ValueNoCheck("MID_AJUDocumentType_ID", line.getMID_AJUDocumentType_ID()); -// retValue.setC_BPartner_ID(line.getC_BPartner_ID()); -// retValue.setC_Currency_ID(line.getC_Currency_ID()); -// retValue.setSalesRep_ID(line.getSalesRep_ID()); -// retValue.setIsSOTrx(true); -// retValue.setM_InOut_ID(line.getM_InOut_ID()); -// retValue.setM_RMAType_ID(DB.getSQLValue(get_TrxName(), "SELECT M_RMAType_ID FROM M_RMAType WHERE Name =? AND AD_Client_ID =?", new Object[] {"Rusak", getAD_Client_ID()})); - retValue.saveEx(); - - return retValue; - } - - private MOrder createPurchaseOrder(X_MID_UploadTPBLine line) { - MOrder retValue = new MOrder(getCtx(), 0, get_TrxName()); - MRequisition req = new MRequisition(getCtx(), line.getM_Requisition_ID(), get_TrxName()); - retValue.setAD_Org_ID(line.getAD_Org_ID()); - retValue.set_ValueNoCheck("NoAju1", line.getNoAju()); - retValue.set_ValueNoCheck("RegisterDate", line.getRegisterDate()); - retValue.set_ValueNoCheck("RegisterNo", line.getRegisterNo()); - retValue.set_ValueNoCheck("MID_AJUDocumentType_ID", line.getMID_AJUDocumentType_ID()); - retValue.setC_BPartner_ID(line.getC_BPartner_ID()); - retValue.setC_BPartner_Location_ID(line.getC_BPartner_Location_ID()); - retValue.setDateOrdered(line.getRegisterDate()); - retValue.setDatePromised(line.getRegisterDate()); - retValue.setDateAcct(line.getRegisterDate()); - retValue.setC_Currency_ID(line.getC_Currency_ID()); - retValue.setSalesRep_ID(line.getSalesRep_ID()); - retValue.setPOReference(line.getM_Requisition().getDocumentNo()); - retValue.set_ValueNoCheck("M_Requisition_ID", line.getM_Requisition_ID()); - retValue.setM_Warehouse_ID(line.getM_Warehouse_ID()); - retValue.setC_ConversionType_ID(DB.getSQLValue(get_TrxName(), "SELECT C_ConversionType_ID FROM C_conversiontype WHERE IsDefault =?", new Object[] {true})); - retValue.setC_DocTypeTarget_ID(line.getC_DocTypeTarget_ID()); - retValue.setIsSOTrx(false); - retValue.setM_PriceList_ID(line.getM_PriceList_ID()); - if(req.get_ValueAsInt("C_PaymentTerm_ID")>0) { - retValue.setPaymentRule(req.get_ValueAsString("PaymentRule")); - retValue.setC_PaymentTerm_ID(req.get_ValueAsInt("C_PaymentTerm_ID")); - } - retValue.saveEx(); - String message = Msg.parseTranslation(getCtx(), "@PurchaseOrderCreated@ " + retValue.getDocumentNo()); - addBufferLog(retValue.get_ID(), retValue.getDateOrdered(), null, message, - retValue.get_Table_ID(), retValue.get_ID()); - return retValue; - } - - private void createPurchaseOrderLine(X_MID_UploadTPBLine line, MOrder order) { - String whereClause = " MID_UploadTPBLine_ID =?"; - List detailLines = new Query(getCtx(), X_MID_UploadTPBLineDet.Table_Name, whereClause, get_TrxName()) - .setParameters(new Object[] { line.get_ID() }) - .setOnlyActiveRecords(true) - .list(); - - - for(X_MID_UploadTPBLineDet detailLine : detailLines) { - if(detailLine.getM_RequisitionLine_ID()==0) - throw new AdempiereException(" Requistion Line untuk Aju "+line.getNoAju()+" belum terisi !!!"); - MRequisitionLine reqLine = new MRequisitionLine(getCtx(), detailLine.getM_RequisitionLine_ID(), get_TrxName()); - MOrderLine ol = new MOrderLine(order); - ol.setM_Product_ID(detailLine.getM_Product_ID()); - ol.setC_UOM_ID(detailLine.getC_UOM_ID()); - ol.setQty(detailLine.getQty()); - - if(detailLine.getM_Product().getC_UOM_ID() != detailLine.getC_UOM_ID()) { - ol.setQtyOrdered(MUOMConversion.convertProductFrom(Env.getCtx(), detailLine.getM_Product_ID(), detailLine.getC_UOM_ID(), detailLine.getQty())); - ol.setPriceEntered(detailLine.getPriceActual()); - ol.setPriceActual(detailLine.getPriceActual().divide(ol.getQtyOrdered(),10,BigDecimal.ROUND_DOWN)); - ol.setPriceList(detailLine.getPriceActual().divide(ol.getQtyOrdered(),10,BigDecimal.ROUND_DOWN)); - }else { - ol.setPrice(detailLine.getPriceActual()); - ol.setPriceList(detailLine.getPriceList()); - } - ol.setDiscount(detailLine.getDiscount()); - ol.setC_Tax_ID(reqLine.get_ValueAsInt("C_Tax_ID")); - ol.set_ValueNoCheck("M_Requistion_ID", line.getM_Requisition_ID()); - ol.set_ValueNoCheck("M_RequisitionLine_ID", detailLine.getM_RequisitionLine_ID()); - ol.saveEx(); - } - } - -} +package balinusa.midsuit.process; + +import java.math.BigDecimal; +import java.util.List; + +import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MOrder; +import org.compiere.model.MOrderLine; +import org.compiere.model.MRMA; +import org.compiere.model.MRequisition; +import org.compiere.model.MRequisitionLine; +import org.compiere.model.MUOMConversion; +import org.compiere.model.Query; +import org.compiere.process.ProcessInfoParameter; +import org.compiere.process.SvrProcess; +import org.compiere.util.DB; +import org.compiere.util.Env; +import org.compiere.util.Msg; + +import balinusa.midsuit.model.X_MID_UploadTPB; +import balinusa.midsuit.model.X_MID_UploadTPBLine; +import balinusa.midsuit.model.X_MID_UploadTPBLineDet; + +public class MID_TPBUpdateOrder extends SvrProcess{ + X_MID_UploadTPB tpb = null; + @Override + protected void prepare() { + // TODO Auto-generated method stub + ProcessInfoParameter[] para = getParameter(); + for (int i = 0; i < para.length; i++) + { + } + tpb = new X_MID_UploadTPB(getCtx(), getRecord_ID(), get_TrxName()); + } + + @Override + protected String doIt() throws Exception { + String whereClause = " MID_UploadTPB_ID =? AND Processed='N' AND (M_Requisition_ID IS NOT NULL)"; + List lines = new Query(getCtx(), X_MID_UploadTPBLine.Table_Name, whereClause, get_TrxName()) + .setParameters(new Object[] { getRecord_ID() }) + .setOnlyActiveRecords(true) + .list(); + + for(X_MID_UploadTPBLine line : lines) { + boolean isRetur = line.isReturn(); + if(line.getM_Requisition_ID()>0 && !isRetur) { + MOrder order = createPurchaseOrder(line); + createPurchaseOrderLine(line, order); + line.setC_Order_ID(order.get_ID()); + }else if (line.getM_RMA_ID()>0 && isRetur) { + createCustomerRMA(line); +// MRMA RMA = createCustomerRMA(line); +// createCustomerRMALine(line, RMA); +// line.setM_RMA_ID(RMA.get_ID()); + }else { + MOrder order = createPurchaseOrder(line); + createPurchaseOrderLine(line, order); + line.setC_Order_ID(order.get_ID()); + } + line.setProcessed(true); + line.saveEx(); + } + + int countNotProcessed = DB.getSQLValueEx(get_TrxName(), "SELECT COUNT(*) FROM MID_UploadTPBLine WHERE Processed =? AND MID_UploadTPB_ID =?", new Object[] { false, getRecord_ID() }); + if(countNotProcessed<=0) { + tpb.setProcessed(true); + tpb.saveEx(); + } + return ""; + + } + + private void createCustomerRMALine(X_MID_UploadTPBLine line, MRMA RMA) { + String whereClause = " MID_UploadTPBLine_ID =?"; + List detailLines = new Query(getCtx(), X_MID_UploadTPBLineDet.Table_Name, whereClause, get_TrxName()) + .setParameters(new Object[] { line.get_ID() }) + .setOnlyActiveRecords(true) + .list(); +// int C_Tax_ID = DB.getSQLValueEx(get_TrxName(), "SELECT C_Tax_ID FROM C_Tax WHERE Name=? AND AD_Client_ID =?", new Object[] { "Exempt", getAD_Client_ID()}); +// for(X_MID_UploadTPBLineDet detailLine : detailLines) { + +// MRMALine rmaLine = new MRMALine(getCtx(), 0, get_TrxName()); +// rmaLine.setAD_Org_ID(RMA.getAD_Org_ID()); +// rmaLine.setM_Product_ID(detailLine.getM_Product_ID()); +// rmaLine.setQty(detailLine.getQty()); +// rmaLine.setM_InOutLine_ID(detailLine.getM_InOutLine_ID()); +// rmaLine.setC_Tax_ID(C_Tax_ID); +// rmaLine.saveEx(); +// } + } + + private MRMA createCustomerRMA(X_MID_UploadTPBLine line) { + MRMA retValue = new MRMA(getCtx(), line.getM_RMA_ID(), get_TrxName()); +// retValue.setAD_Org_ID(line.getAD_Org_ID()); + retValue.set_ValueNoCheck("NoAju1", line.getNoAju()); + retValue.set_ValueNoCheck("RegisterDate", line.getRegisterDate()); + retValue.set_ValueNoCheck("RegisterNo", line.getRegisterNo()); + retValue.set_ValueNoCheck("MID_AJUDocumentType_ID", line.getMID_AJUDocumentType_ID()); +// retValue.setC_BPartner_ID(line.getC_BPartner_ID()); +// retValue.setC_Currency_ID(line.getC_Currency_ID()); +// retValue.setSalesRep_ID(line.getSalesRep_ID()); +// retValue.setIsSOTrx(true); +// retValue.setM_InOut_ID(line.getM_InOut_ID()); +// retValue.setM_RMAType_ID(DB.getSQLValue(get_TrxName(), "SELECT M_RMAType_ID FROM M_RMAType WHERE Name =? AND AD_Client_ID =?", new Object[] {"Rusak", getAD_Client_ID()})); + retValue.saveEx(); + + return retValue; + } + + private MOrder createPurchaseOrder(X_MID_UploadTPBLine line) { + MOrder retValue = new MOrder(getCtx(), 0, get_TrxName()); + MRequisition req = new MRequisition(getCtx(), line.getM_Requisition_ID(), get_TrxName()); + retValue.setAD_Org_ID(line.getAD_Org_ID()); + retValue.set_ValueNoCheck("NoAju1", line.getNoAju()); + retValue.set_ValueNoCheck("RegisterDate", line.getRegisterDate()); + retValue.set_ValueNoCheck("RegisterNo", line.getRegisterNo()); + retValue.set_ValueNoCheck("MID_AJUDocumentType_ID", line.getMID_AJUDocumentType_ID()); + retValue.setC_BPartner_ID(line.getC_BPartner_ID()); + retValue.setC_BPartner_Location_ID(line.getC_BPartner_Location_ID()); + retValue.setDateOrdered(line.getRegisterDate()); + retValue.setDatePromised(line.getRegisterDate()); + retValue.setDateAcct(line.getRegisterDate()); + retValue.setC_Currency_ID(line.getC_Currency_ID()); + retValue.setSalesRep_ID(line.getSalesRep_ID()); + retValue.setPOReference(line.getM_Requisition().getDocumentNo()); + retValue.set_ValueNoCheck("M_Requisition_ID", line.getM_Requisition_ID()); + retValue.setM_Warehouse_ID(line.getM_Warehouse_ID()); + retValue.setC_ConversionType_ID(DB.getSQLValue(get_TrxName(), "SELECT C_ConversionType_ID FROM C_conversiontype WHERE IsDefault =?", new Object[] {true})); + retValue.setC_DocTypeTarget_ID(line.getC_DocTypeTarget_ID()); + retValue.setIsSOTrx(false); + retValue.setM_PriceList_ID(line.getM_PriceList_ID()); + if(req.get_ValueAsInt("C_PaymentTerm_ID")>0) { + retValue.setPaymentRule(req.get_ValueAsString("PaymentRule")); + retValue.setC_PaymentTerm_ID(req.get_ValueAsInt("C_PaymentTerm_ID")); + } + retValue.saveEx(); + String message = Msg.parseTranslation(getCtx(), "@PurchaseOrderCreated@ " + retValue.getDocumentNo()); + addBufferLog(retValue.get_ID(), retValue.getDateOrdered(), null, message, + retValue.get_Table_ID(), retValue.get_ID()); + return retValue; + } + + private void createPurchaseOrderLine(X_MID_UploadTPBLine line, MOrder order) { + String whereClause = " MID_UploadTPBLine_ID =?"; + List detailLines = new Query(getCtx(), X_MID_UploadTPBLineDet.Table_Name, whereClause, get_TrxName()) + .setParameters(new Object[] { line.get_ID() }) + .setOnlyActiveRecords(true) + .list(); + + + for(X_MID_UploadTPBLineDet detailLine : detailLines) { + if(detailLine.getM_RequisitionLine_ID()==0) + throw new AdempiereException(" Requistion Line untuk Aju "+line.getNoAju()+" belum terisi !!!"); + MRequisitionLine reqLine = new MRequisitionLine(getCtx(), detailLine.getM_RequisitionLine_ID(), get_TrxName()); + MOrderLine ol = new MOrderLine(order); + ol.setM_Product_ID(detailLine.getM_Product_ID()); + ol.setC_UOM_ID(detailLine.getC_UOM_ID()); + ol.setQty(detailLine.getQty()); + + if(detailLine.getM_Product().getC_UOM_ID() != detailLine.getC_UOM_ID()) { + ol.setQtyOrdered(MUOMConversion.convertProductFrom(Env.getCtx(), detailLine.getM_Product_ID(), detailLine.getC_UOM_ID(), detailLine.getQty())); + ol.setPriceEntered(detailLine.getPriceActual()); + ol.setPriceActual(detailLine.getPriceActual().divide(ol.getQtyOrdered(),10,BigDecimal.ROUND_DOWN)); + ol.setPriceList(detailLine.getPriceActual().divide(ol.getQtyOrdered(),10,BigDecimal.ROUND_DOWN)); + }else { + ol.setPrice(detailLine.getPriceActual()); + ol.setPriceList(detailLine.getPriceList()); + } + ol.setDiscount(detailLine.getDiscount()); + ol.setC_Tax_ID(reqLine.get_ValueAsInt("C_Tax_ID")); + ol.set_ValueNoCheck("M_Requistion_ID", line.getM_Requisition_ID()); + ol.set_ValueNoCheck("M_RequisitionLine_ID", detailLine.getM_RequisitionLine_ID()); + ol.saveEx(); + } + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_TPBUpdateOrderLine.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_TPBUpdateOrderLine.java similarity index 94% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_TPBUpdateOrderLine.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_TPBUpdateOrderLine.java index 866f104..98ddd7e 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_TPBUpdateOrderLine.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_TPBUpdateOrderLine.java @@ -1,170 +1,170 @@ -package andromedia.midsuit.process; - -import java.math.BigDecimal; -import java.util.List; - -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.MOrder; -import org.compiere.model.MOrderLine; -import org.compiere.model.MRMA; -import org.compiere.model.MRMALine; -import org.compiere.model.MRequisition; -import org.compiere.model.MRequisitionLine; -import org.compiere.model.MUOMConversion; -import org.compiere.model.Query; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.compiere.util.Msg; - -import andromedia.midsuit.model.X_MID_UploadPEB; -import andromedia.midsuit.model.X_MID_UploadTPB; -import andromedia.midsuit.model.X_MID_UploadTPBLine; -import andromedia.midsuit.model.X_MID_UploadTPBLineDet; - -public class MID_TPBUpdateOrderLine extends SvrProcess{ - X_MID_UploadTPBLine tpbLine = null; - @Override - protected void prepare() { - // TODO Auto-generated method stub - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - } - tpbLine = new X_MID_UploadTPBLine(getCtx(), getRecord_ID(), get_TrxName()); - } - - @Override - protected String doIt() throws Exception { - boolean isRetur = tpbLine.isReturn(); - if (tpbLine.getM_RMA_ID()>0 && isRetur) { - MRMA RMA = createCustomerRMA(tpbLine); - createCustomerRMALine(tpbLine, RMA); - tpbLine.setM_RMA_ID(RMA.get_ID()); - }else { - MOrder order = createPurchaseOrder(tpbLine); - createPurchaseOrderLine(tpbLine, order); - tpbLine.setC_Order_ID(order.get_ID()); - } - tpbLine.setProcessed(true); - tpbLine.saveEx(); - - int countNotProcessed = DB.getSQLValueEx(get_TrxName(), "SELECT COUNT(*) FROM MID_UploadTPBLine WHERE Processed =? AND MID_UploadTPB_ID =?", new Object[] { false, tpbLine.getMID_UploadTPB_ID() }); - if(countNotProcessed<=0) { - X_MID_UploadTPB tpb = new X_MID_UploadTPB(getCtx(), tpbLine.getMID_UploadTPB_ID(), get_TrxName()); - tpb.setProcessed(true); - tpb.saveEx(); - } - return ""; - - } - - private void createCustomerRMALine(X_MID_UploadTPBLine line, MRMA RMA) { - String whereClause = " MID_UploadTPBLine_ID =?"; - List detailLines = new Query(getCtx(), X_MID_UploadTPBLineDet.Table_Name, whereClause, get_TrxName()) - .setParameters(new Object[] { line.get_ID() }) - .setOnlyActiveRecords(true) - .list(); - int C_Tax_ID = DB.getSQLValueEx(get_TrxName(), "SELECT C_Tax_ID FROM C_Tax WHERE Name=? AND AD_Client_ID =?", new Object[] { "Exempt", getAD_Client_ID()}); - for(X_MID_UploadTPBLineDet detailLine : detailLines) { -// if(detailLine.getM_RequisitionLine_ID()==0) -// throw new AdempiereException(" Requistion Line untuk Aju "+line.getNoAju()+" belum terisi !!!"); - -// MRMALine rmaLine = new MRMALine(getCtx(), 0, get_TrxName()); -// rmaLine.setAD_Org_ID(RMA.getAD_Org_ID()); -// rmaLine.setM_Product_ID(detailLine.getM_Product_ID()); -// rmaLine.setQty(detailLine.getQty()); -// rmaLine.setM_InOutLine_ID(detailLine.getM_InOutLine_ID()); -// rmaLine.setC_Tax_ID(C_Tax_ID); -// rmaLine.saveEx(); - } - } - - private MRMA createCustomerRMA(X_MID_UploadTPBLine line) { - MRMA retValue = new MRMA(getCtx(), line.getM_RMA_ID(), get_TrxName()); -// MRMA retValue = new MRMA(getCtx(), 0, get_TrxName()); -// retValue.setAD_Org_ID(line.getAD_Org_ID()); - retValue.set_ValueNoCheck("NoAju", line.getNoAju()); - retValue.set_ValueNoCheck("RegisterDate", line.getRegisterDate()); - retValue.set_ValueNoCheck("RegisterNo", line.getRegisterNo()); - retValue.set_ValueNoCheck("MID_AJUDocumentType_ID", line.getMID_AJUDocumentType_ID()); -// retValue.setC_BPartner_ID(line.getC_BPartner_ID()); -// retValue.setC_Currency_ID(line.getC_Currency_ID()); -// retValue.setSalesRep_ID(line.getSalesRep_ID()); -// retValue.setIsSOTrx(true); -// retValue.setM_InOut_ID(line.getM_InOut_ID()); -// retValue.setM_RMAType_ID(DB.getSQLValue(get_TrxName(), "SELECT M_RMAType_ID FROM M_RMAType WHERE Name =? AND AD_Client_ID =?", new Object[] {"Rusak", getAD_Client_ID()})); - retValue.saveEx(); - - return retValue; - } - - private MOrder createPurchaseOrder(X_MID_UploadTPBLine line) { - MOrder retValue = new MOrder(getCtx(), 0, get_TrxName()); - MRequisition req = new MRequisition(getCtx(), line.getM_Requisition_ID(), get_TrxName()); - retValue.setAD_Org_ID(line.getAD_Org_ID()); - retValue.set_ValueNoCheck("NoAju1", line.getNoAju()); - retValue.set_ValueNoCheck("RegisterDate", line.getRegisterDate()); - retValue.set_ValueNoCheck("RegisterNo", line.getRegisterNo()); - retValue.set_ValueNoCheck("MID_AJUDocumentType_ID", line.getMID_AJUDocumentType_ID()); - retValue.setDateOrdered(line.getRegisterDate()); - retValue.setDatePromised(line.getRegisterDate()); - retValue.setPOReference(line.getM_Requisition().getDocumentNo()); - retValue.setC_BPartner_ID(line.getC_BPartner_ID()); - retValue.setC_BPartner_Location_ID(line.getC_BPartner_Location_ID()); - if(line.getM_Requisition_ID()>0) - retValue.set_ValueNoCheck("M_Requisition_ID", line.getM_Requisition_ID()); - retValue.setDateAcct(line.getRegisterDate()); - retValue.setC_Currency_ID(line.getC_Currency_ID()); - retValue.setSalesRep_ID(line.getSalesRep_ID()); - retValue.setM_Warehouse_ID(line.getM_Warehouse_ID()); - retValue.setC_ConversionType_ID(DB.getSQLValue(get_TrxName(), "SELECT C_ConversionType_ID FROM C_conversiontype WHERE IsDefault =?", new Object[] {true})); - retValue.setC_DocTypeTarget_ID(line.getC_DocTypeTarget_ID()); - retValue.setIsSOTrx(false); - retValue.setM_PriceList_ID(line.getM_PriceList_ID()); - if(req.get_ValueAsInt("C_PaymentTerm_ID")>0) { - retValue.setPaymentRule(req.get_ValueAsString("PaymentRule")); - retValue.setC_PaymentTerm_ID(req.get_ValueAsInt("C_PaymentTerm_ID")); - } - retValue.saveEx(); - String message = Msg.parseTranslation(getCtx(), "@PurchaseOrderCreated@ " + retValue.getDocumentNo()); - addBufferLog(retValue.get_ID(), retValue.getDateOrdered(), null, message, - retValue.get_Table_ID(), retValue.get_ID()); - return retValue; - } - - private void createPurchaseOrderLine(X_MID_UploadTPBLine line, MOrder order) { - String whereClause = " MID_UploadTPBLine_ID =?"; - List detailLines = new Query(getCtx(), X_MID_UploadTPBLineDet.Table_Name, whereClause, get_TrxName()) - .setParameters(new Object[] { line.get_ID() }) - .setOnlyActiveRecords(true) - .list(); - for(X_MID_UploadTPBLineDet detailLine : detailLines) { - if(detailLine.getM_RequisitionLine_ID()==0) - throw new AdempiereException(" Requistion Line untuk Aju "+line.getNoAju()+" belum terisi !!!"); - MRequisitionLine reqLine = new MRequisitionLine(getCtx(), detailLine.getM_RequisitionLine_ID(), get_TrxName()); - MOrderLine ol = new MOrderLine(order); - ol.setM_Product_ID(detailLine.getM_Product_ID()); - ol.setC_UOM_ID(detailLine.getC_UOM_ID()); - ol.setQty(detailLine.getQty()); - if(detailLine.getM_Product().getC_UOM_ID() != detailLine.getC_UOM_ID()) { - ol.setQtyOrdered(MUOMConversion.convertProductFrom(Env.getCtx(), detailLine.getM_Product_ID(), detailLine.getC_UOM_ID(), detailLine.getQty())); - ol.setPriceEntered(detailLine.getPriceActual()); - ol.setPriceActual(detailLine.getPriceActual().divide(ol.getQtyOrdered(),3,BigDecimal.ROUND_DOWN)); - ol.setPriceList(detailLine.getPriceActual().divide(ol.getQtyOrdered(),3,BigDecimal.ROUND_DOWN)); - }else { - ol.setPrice(detailLine.getPriceActual()); - ol.setPriceList(detailLine.getPriceList()); - } - ol.setPriceList(detailLine.getPriceList()); - ol.setDiscount(detailLine.getDiscount()); - ol.setC_Tax_ID(reqLine.get_ValueAsInt("C_Tax_ID")); - ol.setPrice(detailLine.getPriceActual()); - ol.set_ValueNoCheck("M_Requistion_ID", detailLine.get_ValueAsInt("M_Requisition_ID")); - ol.set_ValueNoCheck("M_RequisitionLine_ID", detailLine.getM_RequisitionLine_ID()); - ol.saveEx(); - } - } - -} +package balinusa.midsuit.process; + +import java.math.BigDecimal; +import java.util.List; + +import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MOrder; +import org.compiere.model.MOrderLine; +import org.compiere.model.MRMA; +import org.compiere.model.MRMALine; +import org.compiere.model.MRequisition; +import org.compiere.model.MRequisitionLine; +import org.compiere.model.MUOMConversion; +import org.compiere.model.Query; +import org.compiere.process.ProcessInfoParameter; +import org.compiere.process.SvrProcess; +import org.compiere.util.DB; +import org.compiere.util.Env; +import org.compiere.util.Msg; + +import balinusa.midsuit.model.X_MID_UploadPEB; +import balinusa.midsuit.model.X_MID_UploadTPB; +import balinusa.midsuit.model.X_MID_UploadTPBLine; +import balinusa.midsuit.model.X_MID_UploadTPBLineDet; + +public class MID_TPBUpdateOrderLine extends SvrProcess{ + X_MID_UploadTPBLine tpbLine = null; + @Override + protected void prepare() { + // TODO Auto-generated method stub + ProcessInfoParameter[] para = getParameter(); + for (int i = 0; i < para.length; i++) + { + } + tpbLine = new X_MID_UploadTPBLine(getCtx(), getRecord_ID(), get_TrxName()); + } + + @Override + protected String doIt() throws Exception { + boolean isRetur = tpbLine.isReturn(); + if (tpbLine.getM_RMA_ID()>0 && isRetur) { + MRMA RMA = createCustomerRMA(tpbLine); + createCustomerRMALine(tpbLine, RMA); + tpbLine.setM_RMA_ID(RMA.get_ID()); + }else { + MOrder order = createPurchaseOrder(tpbLine); + createPurchaseOrderLine(tpbLine, order); + tpbLine.setC_Order_ID(order.get_ID()); + } + tpbLine.setProcessed(true); + tpbLine.saveEx(); + + int countNotProcessed = DB.getSQLValueEx(get_TrxName(), "SELECT COUNT(*) FROM MID_UploadTPBLine WHERE Processed =? AND MID_UploadTPB_ID =?", new Object[] { false, tpbLine.getMID_UploadTPB_ID() }); + if(countNotProcessed<=0) { + X_MID_UploadTPB tpb = new X_MID_UploadTPB(getCtx(), tpbLine.getMID_UploadTPB_ID(), get_TrxName()); + tpb.setProcessed(true); + tpb.saveEx(); + } + return ""; + + } + + private void createCustomerRMALine(X_MID_UploadTPBLine line, MRMA RMA) { + String whereClause = " MID_UploadTPBLine_ID =?"; + List detailLines = new Query(getCtx(), X_MID_UploadTPBLineDet.Table_Name, whereClause, get_TrxName()) + .setParameters(new Object[] { line.get_ID() }) + .setOnlyActiveRecords(true) + .list(); + int C_Tax_ID = DB.getSQLValueEx(get_TrxName(), "SELECT C_Tax_ID FROM C_Tax WHERE Name=? AND AD_Client_ID =?", new Object[] { "Exempt", getAD_Client_ID()}); + for(X_MID_UploadTPBLineDet detailLine : detailLines) { +// if(detailLine.getM_RequisitionLine_ID()==0) +// throw new AdempiereException(" Requistion Line untuk Aju "+line.getNoAju()+" belum terisi !!!"); + +// MRMALine rmaLine = new MRMALine(getCtx(), 0, get_TrxName()); +// rmaLine.setAD_Org_ID(RMA.getAD_Org_ID()); +// rmaLine.setM_Product_ID(detailLine.getM_Product_ID()); +// rmaLine.setQty(detailLine.getQty()); +// rmaLine.setM_InOutLine_ID(detailLine.getM_InOutLine_ID()); +// rmaLine.setC_Tax_ID(C_Tax_ID); +// rmaLine.saveEx(); + } + } + + private MRMA createCustomerRMA(X_MID_UploadTPBLine line) { + MRMA retValue = new MRMA(getCtx(), line.getM_RMA_ID(), get_TrxName()); +// MRMA retValue = new MRMA(getCtx(), 0, get_TrxName()); +// retValue.setAD_Org_ID(line.getAD_Org_ID()); + retValue.set_ValueNoCheck("NoAju", line.getNoAju()); + retValue.set_ValueNoCheck("RegisterDate", line.getRegisterDate()); + retValue.set_ValueNoCheck("RegisterNo", line.getRegisterNo()); + retValue.set_ValueNoCheck("MID_AJUDocumentType_ID", line.getMID_AJUDocumentType_ID()); +// retValue.setC_BPartner_ID(line.getC_BPartner_ID()); +// retValue.setC_Currency_ID(line.getC_Currency_ID()); +// retValue.setSalesRep_ID(line.getSalesRep_ID()); +// retValue.setIsSOTrx(true); +// retValue.setM_InOut_ID(line.getM_InOut_ID()); +// retValue.setM_RMAType_ID(DB.getSQLValue(get_TrxName(), "SELECT M_RMAType_ID FROM M_RMAType WHERE Name =? AND AD_Client_ID =?", new Object[] {"Rusak", getAD_Client_ID()})); + retValue.saveEx(); + + return retValue; + } + + private MOrder createPurchaseOrder(X_MID_UploadTPBLine line) { + MOrder retValue = new MOrder(getCtx(), 0, get_TrxName()); + MRequisition req = new MRequisition(getCtx(), line.getM_Requisition_ID(), get_TrxName()); + retValue.setAD_Org_ID(line.getAD_Org_ID()); + retValue.set_ValueNoCheck("NoAju1", line.getNoAju()); + retValue.set_ValueNoCheck("RegisterDate", line.getRegisterDate()); + retValue.set_ValueNoCheck("RegisterNo", line.getRegisterNo()); + retValue.set_ValueNoCheck("MID_AJUDocumentType_ID", line.getMID_AJUDocumentType_ID()); + retValue.setDateOrdered(line.getRegisterDate()); + retValue.setDatePromised(line.getRegisterDate()); + retValue.setPOReference(line.getM_Requisition().getDocumentNo()); + retValue.setC_BPartner_ID(line.getC_BPartner_ID()); + retValue.setC_BPartner_Location_ID(line.getC_BPartner_Location_ID()); + if(line.getM_Requisition_ID()>0) + retValue.set_ValueNoCheck("M_Requisition_ID", line.getM_Requisition_ID()); + retValue.setDateAcct(line.getRegisterDate()); + retValue.setC_Currency_ID(line.getC_Currency_ID()); + retValue.setSalesRep_ID(line.getSalesRep_ID()); + retValue.setM_Warehouse_ID(line.getM_Warehouse_ID()); + retValue.setC_ConversionType_ID(DB.getSQLValue(get_TrxName(), "SELECT C_ConversionType_ID FROM C_conversiontype WHERE IsDefault =?", new Object[] {true})); + retValue.setC_DocTypeTarget_ID(line.getC_DocTypeTarget_ID()); + retValue.setIsSOTrx(false); + retValue.setM_PriceList_ID(line.getM_PriceList_ID()); + if(req.get_ValueAsInt("C_PaymentTerm_ID")>0) { + retValue.setPaymentRule(req.get_ValueAsString("PaymentRule")); + retValue.setC_PaymentTerm_ID(req.get_ValueAsInt("C_PaymentTerm_ID")); + } + retValue.saveEx(); + String message = Msg.parseTranslation(getCtx(), "@PurchaseOrderCreated@ " + retValue.getDocumentNo()); + addBufferLog(retValue.get_ID(), retValue.getDateOrdered(), null, message, + retValue.get_Table_ID(), retValue.get_ID()); + return retValue; + } + + private void createPurchaseOrderLine(X_MID_UploadTPBLine line, MOrder order) { + String whereClause = " MID_UploadTPBLine_ID =?"; + List detailLines = new Query(getCtx(), X_MID_UploadTPBLineDet.Table_Name, whereClause, get_TrxName()) + .setParameters(new Object[] { line.get_ID() }) + .setOnlyActiveRecords(true) + .list(); + for(X_MID_UploadTPBLineDet detailLine : detailLines) { + if(detailLine.getM_RequisitionLine_ID()==0) + throw new AdempiereException(" Requistion Line untuk Aju "+line.getNoAju()+" belum terisi !!!"); + MRequisitionLine reqLine = new MRequisitionLine(getCtx(), detailLine.getM_RequisitionLine_ID(), get_TrxName()); + MOrderLine ol = new MOrderLine(order); + ol.setM_Product_ID(detailLine.getM_Product_ID()); + ol.setC_UOM_ID(detailLine.getC_UOM_ID()); + ol.setQty(detailLine.getQty()); + if(detailLine.getM_Product().getC_UOM_ID() != detailLine.getC_UOM_ID()) { + ol.setQtyOrdered(MUOMConversion.convertProductFrom(Env.getCtx(), detailLine.getM_Product_ID(), detailLine.getC_UOM_ID(), detailLine.getQty())); + ol.setPriceEntered(detailLine.getPriceActual()); + ol.setPriceActual(detailLine.getPriceActual().divide(ol.getQtyOrdered(),3,BigDecimal.ROUND_DOWN)); + ol.setPriceList(detailLine.getPriceActual().divide(ol.getQtyOrdered(),3,BigDecimal.ROUND_DOWN)); + }else { + ol.setPrice(detailLine.getPriceActual()); + ol.setPriceList(detailLine.getPriceList()); + } + ol.setPriceList(detailLine.getPriceList()); + ol.setDiscount(detailLine.getDiscount()); + ol.setC_Tax_ID(reqLine.get_ValueAsInt("C_Tax_ID")); + ol.setPrice(detailLine.getPriceActual()); + ol.set_ValueNoCheck("M_Requistion_ID", detailLine.get_ValueAsInt("M_Requisition_ID")); + ol.set_ValueNoCheck("M_RequisitionLine_ID", detailLine.getM_RequisitionLine_ID()); + ol.saveEx(); + } + } + +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadCeisa40.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadCeisa40.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadCeisa40.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadCeisa40.java index 85ccea3..48fdbdd 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadCeisa40.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadCeisa40.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.io.File; import java.io.IOException; @@ -15,6 +15,14 @@ import org.compiere.process.ProcessInfoParameter; import org.compiere.process.SvrProcess; import org.compiere.util.DB; import org.compiere.util.Env; + +import balinusa.midsuit.model.I_MID_AJUDocumentType; +import balinusa.midsuit.model.X_MID_AJUDocumentType; +import balinusa.midsuit.model.X_mid_ceisa_entitas; +import balinusa.midsuit.model.X_mid_ceisa_order; +import balinusa.midsuit.model.X_mid_ceisa_orderline; +import balinusa.midsuit.model.X_mid_ceisa_upload; + import org.apache.commons.logging.Log; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Row; @@ -22,13 +30,6 @@ import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; -import andromedia.midsuit.model.I_MID_AJUDocumentType; -import andromedia.midsuit.model.X_MID_AJUDocumentType; -import andromedia.midsuit.model.X_mid_ceisa_entitas; -import andromedia.midsuit.model.X_mid_ceisa_order; -import andromedia.midsuit.model.X_mid_ceisa_orderline; -import andromedia.midsuit.model.X_mid_ceisa_upload; - public class MID_UploadCeisa40 extends SvrProcess { String p_File = ""; X_mid_ceisa_upload ceisa = null; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEB.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEB.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEB.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEB.java index ec8905a..2ec66f9 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEB.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEB.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.io.File; import java.math.BigDecimal; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEBOrder.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEBOrder.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEBOrder.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEBOrder.java index 8189aef..16d2da4 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEBOrder.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEBOrder.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.io.File; import java.math.BigDecimal; @@ -26,7 +26,7 @@ import org.compiere.util.DB; import org.compiere.util.Env; import org.compiere.util.Msg; -import andromedia.midsuit.model.MID_MOrder; +import balinusa.midsuit.model.MID_MOrder; import net.ucanaccess.jdbc.UcanaccessDriver; public class MID_UploadPEBOrder extends SvrProcess{ diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEBWindow.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEBWindow.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEBWindow.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEBWindow.java index 251424e..64e9359 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEBWindow.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadPEBWindow.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.io.File; import java.math.BigDecimal; @@ -26,9 +26,9 @@ import org.compiere.util.DB; import org.compiere.util.Env; import org.compiere.util.Msg; -import andromedia.midsuit.model.MID_MOrder; -import andromedia.midsuit.model.X_MID_UploadPEB; -import andromedia.midsuit.model.X_MID_UploadPEBLine; +import balinusa.midsuit.model.MID_MOrder; +import balinusa.midsuit.model.X_MID_UploadPEB; +import balinusa.midsuit.model.X_MID_UploadPEBLine; import net.ucanaccess.jdbc.UcanaccessDriver; public class MID_UploadPEBWindow extends SvrProcess{ diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadTPB.java b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadTPB.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadTPB.java rename to balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadTPB.java index f923429..dd6cf44 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/process/MID_UploadTPB.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/process/MID_UploadTPB.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.process; +package balinusa.midsuit.process; import java.io.File; import java.math.BigDecimal; @@ -19,9 +19,9 @@ import org.compiere.process.SvrProcess; import org.compiere.util.DB; import org.compiere.util.Env; -import andromedia.midsuit.model.X_MID_UploadTPB; -import andromedia.midsuit.model.X_MID_UploadTPBLine; -import andromedia.midsuit.model.X_MID_UploadTPBLineDet; +import balinusa.midsuit.model.X_MID_UploadTPB; +import balinusa.midsuit.model.X_MID_UploadTPBLine; +import balinusa.midsuit.model.X_MID_UploadTPBLineDet; public class MID_UploadTPB extends SvrProcess{ diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_CurrencyRateValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_CurrencyRateValidator.java similarity index 94% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_CurrencyRateValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_CurrencyRateValidator.java index ab8b1ca..6689efc 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_CurrencyRateValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_CurrencyRateValidator.java @@ -1,34 +1,34 @@ -package andromedia.midsuit.validator; - -import java.sql.Timestamp; - -import org.adempiere.base.event.IEventTopics; -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.MConversionRate; -import org.compiere.model.PO; -import org.compiere.util.DB; -import org.osgi.service.event.Event; - -public class MID_CurrencyRateValidator { - public static String executeEvent(Event e, PO po) { - MConversionRate rate = (MConversionRate) po; - if(e.getTopic().equals(IEventTopics.PO_BEFORE_NEW) - || e.getTopic().equals(IEventTopics.PO_BEFORE_CHANGE)) - return beforeSave(rate); - return ""; - } - - private static String beforeSave(MConversionRate rate) { - if(rate.is_new() || rate.is_ValueChanged("ValidFrom") || rate.is_ValueChanged("ValidTo")) { - Timestamp validFrom = rate.getValidFrom(); - Timestamp validTo = rate.getValidTo(); - - int count = DB.getSQLValue(rate.get_TrxName(), "SELECT COUNT (*) FROM C_Conversion_Rate WHERE ((ValidFrom<=? AND ValidTo>=?) OR (ValidFrom<= ? AND ValidTo>= ?))" - + " AND AD_Client_ID =? AND C_Currency_ID =? AND C_Currency_ID_To =? AND C_ConversionType_ID =?", new Object[] {validFrom, validFrom, validTo, validTo, rate.getAD_Client_ID(), rate.getC_Currency_ID(), rate.getC_Currency_ID_To(), rate.getC_ConversionType_ID()}); - - if(count>0) - throw new AdempiereException("There are rate with same validation date !!!"); - } - return ""; - } -} +package balinusa.midsuit.validator; + +import java.sql.Timestamp; + +import org.adempiere.base.event.IEventTopics; +import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MConversionRate; +import org.compiere.model.PO; +import org.compiere.util.DB; +import org.osgi.service.event.Event; + +public class MID_CurrencyRateValidator { + public static String executeEvent(Event e, PO po) { + MConversionRate rate = (MConversionRate) po; + if(e.getTopic().equals(IEventTopics.PO_BEFORE_NEW) + || e.getTopic().equals(IEventTopics.PO_BEFORE_CHANGE)) + return beforeSave(rate); + return ""; + } + + private static String beforeSave(MConversionRate rate) { + if(rate.is_new() || rate.is_ValueChanged("ValidFrom") || rate.is_ValueChanged("ValidTo")) { + Timestamp validFrom = rate.getValidFrom(); + Timestamp validTo = rate.getValidTo(); + + int count = DB.getSQLValue(rate.get_TrxName(), "SELECT COUNT (*) FROM C_Conversion_Rate WHERE ((ValidFrom<=? AND ValidTo>=?) OR (ValidFrom<= ? AND ValidTo>= ?))" + + " AND AD_Client_ID =? AND C_Currency_ID =? AND C_Currency_ID_To =? AND C_ConversionType_ID =?", new Object[] {validFrom, validFrom, validTo, validTo, rate.getAD_Client_ID(), rate.getC_Currency_ID(), rate.getC_Currency_ID_To(), rate.getC_ConversionType_ID()}); + + if(count>0) + throw new AdempiereException("There are rate with same validation date !!!"); + } + return ""; + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_DeprWorkfileValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_DeprWorkfileValidator.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_DeprWorkfileValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_DeprWorkfileValidator.java index ed60d28..7b95fe2 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_DeprWorkfileValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_DeprWorkfileValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import org.adempiere.base.event.IEventTopics; import org.compiere.model.MAsset; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InOutValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InOutValidator.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InOutValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InOutValidator.java index 72da593..add3cdc 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InOutValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InOutValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import org.adempiere.base.event.IEventTopics; import org.compiere.model.MInOut; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryLineMAValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryLineMAValidator.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryLineMAValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryLineMAValidator.java index 493a5ea..04ad2ff 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryLineMAValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryLineMAValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import org.adempiere.base.event.IEventTopics; import org.compiere.model.MInventoryLine; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryLineValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryLineValidator.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryLineValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryLineValidator.java index f3166ad..eb61dd7 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryLineValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryLineValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import org.adempiere.base.event.IEventTopics; import org.compiere.model.MDocType; @@ -6,7 +6,7 @@ import org.compiere.model.MInventoryLine; import org.compiere.model.PO; import org.osgi.service.event.Event; -import andromedia.midsuit.model.MID_PPOLine; +import balinusa.midsuit.model.MID_PPOLine; public class MID_InventoryLineValidator { public static String executeEvent(Event e, PO po) { diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryValidator.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryValidator.java index 45fb22b..c6e792b 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InventoryValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import org.adempiere.base.event.IEventTopics; import org.adempiere.exceptions.AdempiereException; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InvoiceTaxValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InvoiceTaxValidator.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InvoiceTaxValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InvoiceTaxValidator.java index c6def36..0fc16d5 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InvoiceTaxValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InvoiceTaxValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import java.math.BigDecimal; import java.math.RoundingMode; @@ -14,7 +14,7 @@ import org.compiere.util.DB; import org.compiere.util.Env; import org.osgi.service.event.Event; -import andromedia.midsuit.model.MID_MOrder; +import balinusa.midsuit.model.MID_MOrder; public class MID_InvoiceTaxValidator { diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InvoiceValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InvoiceValidator.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InvoiceValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InvoiceValidator.java index 736337a..42eb989 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_InvoiceValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_InvoiceValidator.java @@ -4,7 +4,7 @@ * Author @Hodianto * Invoice UPPER DOCUMENT NO */ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import org.adempiere.base.event.IEventTopics; import org.compiere.model.MInvoice; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_JournalValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_JournalValidator.java similarity index 91% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_JournalValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_JournalValidator.java index 069de29..b22c801 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_JournalValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_JournalValidator.java @@ -1,40 +1,40 @@ -package andromedia.midsuit.validator; - -import org.adempiere.base.event.IEventTopics; -import org.compiere.model.MJournal; -import org.compiere.model.PO; -import org.compiere.util.DB; -import org.osgi.service.event.Event; - -import andromedia.midsuit.model.MID_UnrealizedRate; - -public class MID_JournalValidator { - public static String executeEvent(Event e, PO po) { - MJournal j = (MJournal) po; - if (e.getTopic().equals(IEventTopics.DOC_BEFORE_COMPLETE)) - return beforeComplete(j); - else if (e.getTopic().equals(IEventTopics.DOC_BEFORE_REVERSEACCRUAL) - || e.getTopic().equals(IEventTopics.DOC_BEFORE_REVERSECORRECT)) - return beforeReverse(j); - return ""; - } - private static String beforeReverse(MJournal j) { - int MID_UnrealizedRate_ID = DB.getSQLValue(j.get_TrxName(), "SELECT MID_UnrealizedRate_ID FROM MID_UnrealizedRate WHERE GL_Journal_ID =?", new Object[] { j.getGL_Journal_ID()}); - if(MID_UnrealizedRate_ID>0){ - MID_UnrealizedRate unRate = new MID_UnrealizedRate(j.getCtx(), MID_UnrealizedRate_ID, j.get_TrxName()); - unRate.setProcessed(false); - unRate.setGL_Journal_ID(0); - unRate.saveEx(); - } - return ""; - } - private static String beforeComplete(MJournal j) { - int MID_UnrealizedRate_ID = DB.getSQLValue(j.get_TrxName(), "SELECT MID_UnrealizedRate_ID FROM MID_UnrealizedRate WHERE GL_Journal_ID =?", new Object[] { j.getGL_Journal_ID()}); - if(MID_UnrealizedRate_ID>0){ - MID_UnrealizedRate unRate = new MID_UnrealizedRate(j.getCtx(), MID_UnrealizedRate_ID, j.get_TrxName()); - unRate.setProcessed(true); - unRate.saveEx(); - } - return ""; - } -} +package balinusa.midsuit.validator; + +import org.adempiere.base.event.IEventTopics; +import org.compiere.model.MJournal; +import org.compiere.model.PO; +import org.compiere.util.DB; +import org.osgi.service.event.Event; + +import balinusa.midsuit.model.MID_UnrealizedRate; + +public class MID_JournalValidator { + public static String executeEvent(Event e, PO po) { + MJournal j = (MJournal) po; + if (e.getTopic().equals(IEventTopics.DOC_BEFORE_COMPLETE)) + return beforeComplete(j); + else if (e.getTopic().equals(IEventTopics.DOC_BEFORE_REVERSEACCRUAL) + || e.getTopic().equals(IEventTopics.DOC_BEFORE_REVERSECORRECT)) + return beforeReverse(j); + return ""; + } + private static String beforeReverse(MJournal j) { + int MID_UnrealizedRate_ID = DB.getSQLValue(j.get_TrxName(), "SELECT MID_UnrealizedRate_ID FROM MID_UnrealizedRate WHERE GL_Journal_ID =?", new Object[] { j.getGL_Journal_ID()}); + if(MID_UnrealizedRate_ID>0){ + MID_UnrealizedRate unRate = new MID_UnrealizedRate(j.getCtx(), MID_UnrealizedRate_ID, j.get_TrxName()); + unRate.setProcessed(false); + unRate.setGL_Journal_ID(0); + unRate.saveEx(); + } + return ""; + } + private static String beforeComplete(MJournal j) { + int MID_UnrealizedRate_ID = DB.getSQLValue(j.get_TrxName(), "SELECT MID_UnrealizedRate_ID FROM MID_UnrealizedRate WHERE GL_Journal_ID =?", new Object[] { j.getGL_Journal_ID()}); + if(MID_UnrealizedRate_ID>0){ + MID_UnrealizedRate unRate = new MID_UnrealizedRate(j.getCtx(), MID_UnrealizedRate_ID, j.get_TrxName()); + unRate.setProcessed(true); + unRate.saveEx(); + } + return ""; + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_OrderLineValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_OrderLineValidator.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_OrderLineValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_OrderLineValidator.java index 93c895f..48fc3e0 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_OrderLineValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_OrderLineValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import org.adempiere.base.event.IEventTopics; import org.compiere.model.MOrder; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_OrderTaxValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_OrderTaxValidator.java similarity index 96% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_OrderTaxValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_OrderTaxValidator.java index 15b9c14..41be416 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_OrderTaxValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_OrderTaxValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import java.math.BigDecimal; import java.math.RoundingMode; @@ -13,7 +13,7 @@ import org.compiere.util.DB; import org.compiere.util.Env; import org.osgi.service.event.Event; -import andromedia.midsuit.model.MID_MOrder; +import balinusa.midsuit.model.MID_MOrder; public class MID_OrderTaxValidator { diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_OrderValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_OrderValidator.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_OrderValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_OrderValidator.java index ea1dc78..2d57c26 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_OrderValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_OrderValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import java.math.BigDecimal; import java.sql.Timestamp; @@ -17,8 +17,8 @@ import org.compiere.model.Query; import org.compiere.util.DB; import org.osgi.service.event.Event; -import andromedia.midsuit.model.X_C_OrderLineMA; -import andromedia.midsuit.model.X_MID_UploadTPBLine; +import balinusa.midsuit.model.X_C_OrderLineMA; +import balinusa.midsuit.model.X_MID_UploadTPBLine; public class MID_OrderValidator { final static String EMPTY_STRING = ""; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_PaymentAllocateValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_PaymentAllocateValidator.java similarity index 97% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_PaymentAllocateValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_PaymentAllocateValidator.java index aa24126..42f7b1b 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_PaymentAllocateValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_PaymentAllocateValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import java.math.BigDecimal; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_PaymentValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_PaymentValidator.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_PaymentValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_PaymentValidator.java index ea33e6a..b4d2759 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_PaymentValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_PaymentValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import org.adempiere.base.event.IEventTopics; import org.compiere.model.MPayment; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_PriceListValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_PriceListValidator.java similarity index 90% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_PriceListValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_PriceListValidator.java index 30a6d6b..778a8db 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_PriceListValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_PriceListValidator.java @@ -1,24 +1,24 @@ -package andromedia.midsuit.validator; - -import org.adempiere.base.event.IEventTopics; -import org.compiere.model.MPriceList; -import org.compiere.model.PO; -import org.compiere.util.Env; -import org.osgi.service.event.Event; - -public class MID_PriceListValidator { - public static String executeEvent(Event e, PO po) { - MPriceList pp = (MPriceList) po; - - if (e.getTopic().equals(IEventTopics.PO_BEFORE_NEW)) { - return afterSave(pp); - } - return ""; - } - - private static String afterSave(MPriceList po) { - if(Env.getAD_User_ID(po.getCtx())!=100) - return "PENAMBAHAN PRICE LIST HANYA DAPAT DILAKUKAN OLEH TEAM MIDSUIT !!!"; - return ""; - } -} +package balinusa.midsuit.validator; + +import org.adempiere.base.event.IEventTopics; +import org.compiere.model.MPriceList; +import org.compiere.model.PO; +import org.compiere.util.Env; +import org.osgi.service.event.Event; + +public class MID_PriceListValidator { + public static String executeEvent(Event e, PO po) { + MPriceList pp = (MPriceList) po; + + if (e.getTopic().equals(IEventTopics.PO_BEFORE_NEW)) { + return afterSave(pp); + } + return ""; + } + + private static String afterSave(MPriceList po) { + if(Env.getAD_User_ID(po.getCtx())!=100) + return "PENAMBAHAN PRICE LIST HANYA DAPAT DILAKUKAN OLEH TEAM MIDSUIT !!!"; + return ""; + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_ProductPriceValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_ProductPriceValidator.java similarity index 98% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_ProductPriceValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_ProductPriceValidator.java index 9f63070..69a3e8f 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_ProductPriceValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_ProductPriceValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import java.util.List; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_ProductValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_ProductValidator.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_ProductValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_ProductValidator.java index acc511c..357fd23 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_ProductValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_ProductValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import org.adempiere.base.event.IEventTopics; import org.compiere.model.I_M_Product; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_ProductionLineValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_ProductionLineValidator.java similarity index 95% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_ProductionLineValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_ProductionLineValidator.java index 752e594..7d179ee 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_ProductionLineValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_ProductionLineValidator.java @@ -1,44 +1,44 @@ -package andromedia.midsuit.validator; - -import org.adempiere.base.event.IEventTopics; -import org.compiere.model.MProduction; -import org.compiere.model.MProductionLine; -import org.compiere.model.PO; -import org.compiere.util.DB; -import org.osgi.service.event.Event; - -public class MID_ProductionLineValidator { - public static String executeEvent(Event e, PO po) { - MProductionLine pl = (MProductionLine) po; - if (e.getTopic().equals(IEventTopics.PO_BEFORE_NEW)) - return beforeNew(pl); - return ""; - } - - private static String beforeNew(MProductionLine pl) { - MProduction production = new MProduction(pl.getCtx(), pl.getM_Production_ID(), pl.get_TrxName()); - int PS_PPO_ID = production.get_ValueAsInt("ps_ppo_ID"); - if(pl.get_ValueAsInt("C_UOM_ID")==0) - pl.set_ValueNoCheck("C_UOM_ID", pl.getM_Product().getC_UOM_ID()); - - if(pl.isEndProduct() && PS_PPO_ID > 0) { -// MID_PPO PPO = new MID_PPO(pl.getCtx(), PS_PPO_ID, pl.get_TrxName()); -// pl.setM_AttributeSetInstance_ID(PPO.get_ValueAsInt(X_M_ProductionLine.COLUMNNAME_M_AttributeSetInstance_ID)); - String sqlExec = "SELECT M_AttributeSetInstance_ID " - + " FROM PS_PPO WHERE PS_PPO_ID =?"; - int M_AttributeSetInstance_ID = DB.getSQLValueEx(pl.get_TrxName(), sqlExec, new Object[] { PS_PPO_ID }); - if(M_AttributeSetInstance_ID>0) - pl.setM_AttributeSetInstance_ID(M_AttributeSetInstance_ID); - }else { - String sqlExec = "SELECT M_AttributeSetInstance_ID " + - " FROM M_Storage S " + - " WHERE M_Product_ID = ? AND " + - " DateMaterialPolicy = (SELECT MIN(DateMaterialPolicy) FROM M_StorageOnHand SOH " + - " WHERE SOH.QtyOnHand>0 AND M_AttributeSetInstance_ID > 0 AND M_Product_ID = S.M_Product_ID)"; - int M_AttributeSetInstance_ID = DB.getSQLValueEx(pl.get_TrxName(), sqlExec, new Object[] { pl.getM_Product_ID() }); - if(M_AttributeSetInstance_ID>0) - pl.setM_AttributeSetInstance_ID(M_AttributeSetInstance_ID); - } - return ""; - } -} +package balinusa.midsuit.validator; + +import org.adempiere.base.event.IEventTopics; +import org.compiere.model.MProduction; +import org.compiere.model.MProductionLine; +import org.compiere.model.PO; +import org.compiere.util.DB; +import org.osgi.service.event.Event; + +public class MID_ProductionLineValidator { + public static String executeEvent(Event e, PO po) { + MProductionLine pl = (MProductionLine) po; + if (e.getTopic().equals(IEventTopics.PO_BEFORE_NEW)) + return beforeNew(pl); + return ""; + } + + private static String beforeNew(MProductionLine pl) { + MProduction production = new MProduction(pl.getCtx(), pl.getM_Production_ID(), pl.get_TrxName()); + int PS_PPO_ID = production.get_ValueAsInt("ps_ppo_ID"); + if(pl.get_ValueAsInt("C_UOM_ID")==0) + pl.set_ValueNoCheck("C_UOM_ID", pl.getM_Product().getC_UOM_ID()); + + if(pl.isEndProduct() && PS_PPO_ID > 0) { +// MID_PPO PPO = new MID_PPO(pl.getCtx(), PS_PPO_ID, pl.get_TrxName()); +// pl.setM_AttributeSetInstance_ID(PPO.get_ValueAsInt(X_M_ProductionLine.COLUMNNAME_M_AttributeSetInstance_ID)); + String sqlExec = "SELECT M_AttributeSetInstance_ID " + + " FROM PS_PPO WHERE PS_PPO_ID =?"; + int M_AttributeSetInstance_ID = DB.getSQLValueEx(pl.get_TrxName(), sqlExec, new Object[] { PS_PPO_ID }); + if(M_AttributeSetInstance_ID>0) + pl.setM_AttributeSetInstance_ID(M_AttributeSetInstance_ID); + }else { + String sqlExec = "SELECT M_AttributeSetInstance_ID " + + " FROM M_Storage S " + + " WHERE M_Product_ID = ? AND " + + " DateMaterialPolicy = (SELECT MIN(DateMaterialPolicy) FROM M_StorageOnHand SOH " + + " WHERE SOH.QtyOnHand>0 AND M_AttributeSetInstance_ID > 0 AND M_Product_ID = S.M_Product_ID)"; + int M_AttributeSetInstance_ID = DB.getSQLValueEx(pl.get_TrxName(), sqlExec, new Object[] { pl.getM_Product_ID() }); + if(M_AttributeSetInstance_ID>0) + pl.setM_AttributeSetInstance_ID(M_AttributeSetInstance_ID); + } + return ""; + } +} diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_ProductionValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_ProductionValidator.java similarity index 93% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_ProductionValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_ProductionValidator.java index 7cd9851..a334093 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_ProductionValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_ProductionValidator.java @@ -1,36 +1,36 @@ -package andromedia.midsuit.validator; - -import org.adempiere.base.event.IEventTopics; -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.MProduction; -import org.compiere.model.MProductionLine; -import org.compiere.model.PO; -import org.osgi.service.event.Event; - -public class MID_ProductionValidator { - public static String executeEvent(Event e, PO po) { - MProduction pl = (MProduction) po; - if (e.getTopic().equals(IEventTopics.DOC_BEFORE_COMPLETE)) - return beforeComplete(pl); - else if (e.getTopic().equals(IEventTopics.PO_BEFORE_NEW)) - return beforeNew(pl); - return ""; - } - - private static String beforeNew(MProduction p) { - if(p.getProductionQty().signum()==0) - throw new AdempiereException("Qty Production Wajib Lebih Besar dari 0 !"); - return ""; - } - - private static String beforeComplete(MProduction p) { - for(MProductionLine line : p.getLines()) { - if(line.getMovementQty().signum()==0) - throw new AdempiereException("Qty "+line.getM_Product().getName() - +"Wajib Lebih Besar dari 0 !"); - } - return ""; - } - -} - +package balinusa.midsuit.validator; + +import org.adempiere.base.event.IEventTopics; +import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MProduction; +import org.compiere.model.MProductionLine; +import org.compiere.model.PO; +import org.osgi.service.event.Event; + +public class MID_ProductionValidator { + public static String executeEvent(Event e, PO po) { + MProduction pl = (MProduction) po; + if (e.getTopic().equals(IEventTopics.DOC_BEFORE_COMPLETE)) + return beforeComplete(pl); + else if (e.getTopic().equals(IEventTopics.PO_BEFORE_NEW)) + return beforeNew(pl); + return ""; + } + + private static String beforeNew(MProduction p) { + if(p.getProductionQty().signum()==0) + throw new AdempiereException("Qty Production Wajib Lebih Besar dari 0 !"); + return ""; + } + + private static String beforeComplete(MProduction p) { + for(MProductionLine line : p.getLines()) { + if(line.getMovementQty().signum()==0) + throw new AdempiereException("Qty "+line.getM_Product().getName() + +"Wajib Lebih Besar dari 0 !"); + } + return ""; + } + +} + diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_RMAValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_RMAValidator.java similarity index 99% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_RMAValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_RMAValidator.java index 93c4340..bc61cce 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_RMAValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_RMAValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import java.math.BigDecimal; import java.sql.Timestamp; diff --git a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_RequisitionTaxValidator.java b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_RequisitionTaxValidator.java similarity index 94% rename from andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_RequisitionTaxValidator.java rename to balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_RequisitionTaxValidator.java index e886639..4b7ff67 100644 --- a/andromeida.midsuit.project/src/balinusa/midsuit/validator/MID_RequisitionTaxValidator.java +++ b/balinusa.midsuit.project/src/balinusa/midsuit/validator/MID_RequisitionTaxValidator.java @@ -1,4 +1,4 @@ -package andromedia.midsuit.validator; +package balinusa.midsuit.validator; import java.math.BigDecimal; import java.math.RoundingMode; @@ -13,8 +13,8 @@ import org.compiere.util.DB; import org.compiere.util.Env; import org.osgi.service.event.Event; -import andromedia.midsuit.model.MID_MOrder; -import andromedia.midsuit.model.X_M_RequisitionTax; +import balinusa.midsuit.model.MID_MOrder; +import balinusa.midsuit.model.X_M_RequisitionTax; public class MID_RequisitionTaxValidator {