From e3159e5d5204ff10cdc3ee79bd026be9af4027cc Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Mon, 11 Sep 2023 16:10:30 +0800 Subject: [PATCH] =?UTF-8?q?master=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Common/CK.SCP.Common.csproj | 1 + Common/MyWebSmtpMail.cs | 2 +- Common/app.config | 8 +- Controller/CK.SCP.Controller.csproj | 126 +- Controller/Properties/Settings.Designer.cs | 66 + Controller/Properties/Settings.settings | 18 + Controller/ResultObject.cs | 22 +- Controller/SCP_ASK_CONTROLLER.cs | 799 +- Controller/SCP_ASN_CONTROLLER.cs | 755 +- Controller/SCP_BARCODE_CONTROLLER.cs | 606 +- Controller/SCP_BILLCODE_CONTROLLER.cs | 34 + Controller/SCP_CONTRACT_CONTROLLER.cs | 84 + Controller/SCP_EXCEL_CONTROLLER.cs | 59 +- Controller/SCP_INVOICE_CONTROLLER.cs | 336 + Controller/SCP_PALLET_CONTROLLER.cs | 81 + Controller/SCP_PO_CONTROLLER.cs | 7751 ++++++++++++++--- Controller/SCP_REPORT_CONTROLLER.cs | 64 + Controller/SCP_TA_LANGUAGE_CONTROLLER.cs | 998 ++- Controller/SCP_TB_VENDER_CONTROLLER.cs | 12 +- Controller/SCP_TS_BARCODE_CONTROLLER.cs | 4 + Controller/UniApiController.cs | 63 +- .../Web References/BomList/JsonService.disco | 6 + .../Web References/BomList/JsonService.wsdl | 2062 +++++ .../Web References/BomList/Reference.cs | 1610 ++++ .../Web References/BomList/Reference.map | 7 + .../Web References/BomList1/JsonService.disco | 6 + .../Web References/BomList1/JsonService.wsdl | 2062 +++++ .../Web References/BomList1/Reference.cs | 1610 ++++ .../Web References/BomList1/Reference.map | 7 + .../BomListcompany/JsonService.disco | 6 + .../BomListcompany/JsonService.wsdl | 2062 +++++ .../BomListcompany/Reference.cs | 1610 ++++ .../BomListcompany/Reference.map | 7 + .../BomVersion/JsonService.disco | 6 + .../BomVersion/JsonService.wsdl | 1333 +++ .../Web References/BomVersion/Reference.cs | 1064 +++ .../Web References/BomVersion/Reference.map | 7 + .../BomVersion1/JsonService.disco | 6 + .../BomVersion1/JsonService.wsdl | 1816 ++++ .../Web References/BomVersion1/Reference.cs | 1426 +++ .../Web References/BomVersion1/Reference.map | 7 + Controller/app.config | 41 +- Models/AppBoxEntity/AppBoxContext.cs | 3 +- Models/AppBoxEntity/User.cs | 4 + Models/AppBoxEntity/UserToken.cs | 33 + Models/CK.SCP.Models.csproj | 43 + Models/EntitiesFactory.cs | 2 +- Models/Enums/SCP_ENUM.cs.cs | 9 + Models/Enums/UniApiType.cs | 4 +- Models/GlobalConfig.cs | 11 +- Models/ScpCache.cs | 18 +- Models/ScpEntities.cs | 79 +- .../SCP_APPLIANCE_EXPOPT.cs | 23 + .../SCP_INVOICE_DETAIL_EXPORT.cs | 2 + .../ExcelExportEnttity/SCP_MAXPODC_EXPORT.cs | 17 + .../SCP_MAXPO_DETAIL_EXPORT.cs | 31 + .../ExcelExportEnttity/SCP_MAXPO_EXPORT.cs | 23 + .../SCP_PO_DETAIL_EXPORT.cs | 16 +- .../ExcelExportEnttity/SCP_VENDER_EXPORT.cs | 9 + .../SCP_VENDER_PART_EXPORT.cs | 22 +- Models/ScpEntity/PURSubcontractor.cs | 59 + Models/ScpEntity/TA_ASK_SUBPART.cs | 26 + Models/ScpEntity/TA_Appliance.cs | 28 + Models/ScpEntity/TA_BOXTYPE.cs | 22 + Models/ScpEntity/TA_CONFIG.cs | 2 +- Models/ScpEntity/TA_CarModel.cs | 20 + Models/ScpEntity/TA_PinFan.cs | 21 + Models/ScpEntity/TA_ProductionLine.cs | 22 + Models/ScpEntity/TA_PurchasGroup.cs | 22 + Models/ScpEntity/TA_Receiving_Information.cs | 19 + Models/ScpEntity/TA_StorageLocation.cs | 23 + Models/ScpEntity/TA_SubPart.cs | 20 + Models/ScpEntity/TA_SubPartCode.cs | 22 + Models/ScpEntity/TB_ASK.cs | 3 +- Models/ScpEntity/TB_ASK_DETAIL.cs | 2 +- Models/ScpEntity/TB_ASN_DETAIL.cs | 2 +- Models/ScpEntity/TB_ASN_PARTBOX.cs | 31 + Models/ScpEntity/TB_INVOICE_DETAIL.cs | 3 +- Models/ScpEntity/TB_MAXPO.cs | 31 + Models/ScpEntity/TB_MAXPO_CONSUME.cs | 19 + Models/ScpEntity/TB_MAXPO_DETAIL.cs | 58 + Models/ScpEntity/TB_NetPrice.cs | 33 + Models/ScpEntity/TB_PALLETS_BTL.cs | 47 + Models/ScpEntity/TB_PO.cs | 43 +- Models/ScpEntity/TB_PO_DETAIL.cs | 1 + Models/ScpEntity/TB_PO_SUBDETAIL.cs | 36 + Models/ScpEntity/TB_SUPPLIER_MAIL.cs | 25 + Models/ScpEntity/TM_CYJ_BOM.cs | 63 + Models/ScpEntity/TS_BARCODE.cs | 20 +- Models/ScpEntity/TS_UNI_API.cs | 3 +- Models/ScpEntity/V_ASN_PRINT.cs | 2 + Models/ScpEntity/V_TA_APPLIANCE.cs | 29 + Models/ScpEntity/V_TA_SubPartCode.cs | 32 + Models/ScpEntity/V_TB_ASK.cs | 3 + Models/ScpEntity/V_TB_ASK_DETAIL.cs | 4 + Models/ScpEntity/V_TB_ASN.cs | 2 +- Models/ScpEntity/V_TB_INVOICE_DETAIL.cs | 4 +- Models/ScpEntity/V_TB_MAXPO.cs | 35 + Models/ScpEntity/V_TB_MAXPO_CONSUME .cs | 33 + Models/ScpEntity/V_TB_MAXPO_DETAIL.cs | 64 + Models/ScpEntity/V_TB_PO.cs | 5 + Models/ScpEntity/V_TB_PO_DETAIL.cs | 9 + Models/ScpEntity/V_TB_PO_SUBDETAIL.cs | 39 + Models/ScpEntity/V_TB_REEEE.cs | 33 + Models/UniApiEntity/PURReplenishQty.cs | 17 + Models/UniApiEntity/QadTableName.cs | 4 +- Models/UniApiEntity/UniApiEntities.cs | 162 +- Models/UniApiEntity/xxDiMaxes.cs | 14 + Models/UniApiEntity/xxDiMaxes_Po.cs | 11 + Models/UniApiEntity/xxerp_MaxbatchNO.cs | 15 + Models/UniApiEntity/xxscm_ctrl.cs | 2 +- Models/UniApiEntity/xxscm_inv_det.cs | 10 +- Models/UniApiEntity/xxscm_maxpo_det.cs | 42 + Models/UniApiEntity/xxscm_pod_det.cs | 101 +- Models/UniApiEntity/xxscm_tx_mstr.cs | 2 +- Models/UniApiEntity/xxwms_rc_det.cs | 6 +- Models/UniApiEntity/xxwms_rt_det.cs | 6 +- Models/WmsEntity/TableSchema1.cs | 10 +- SCP.sln | 8 +- SCP/Admin/profile.aspx | 4 +- SCP/Admin/profile.aspx.cs | 13 +- SCP/Admin/profileExtend.aspx.cs | 1 + SCP/Admin/user.aspx.cs | 2 +- SCP/Admin/user_changepassword.aspx | 2 +- SCP/Admin/user_changepassword.aspx.cs | 11 + .../user_changepassword.aspx.designer.cs | 38 +- SCP/Admin/user_edit.aspx.cs | 2 +- SCP/Admin/user_new.aspx | 2 +- SCP/Admin/user_new.aspx.cs | 2 + SCP/Business/PageBase.cs | 3 +- SCP/Common/MailHelper.cs | 89 +- SCP/Common/ReportHelper.cs | 51 +- SCP/Default_FW.aspx | 22 +- SCP/Global.asax.cs | 36 +- .../PublishProfiles/FolderProfile1.pubxml | 16 + .../PublishProfiles/FolderProfile2.pubxml | 16 + SCP/SCP.csproj | 302 +- SCP/Views/BasicData/Appliance.aspx | 109 + SCP/Views/BasicData/Appliance.aspx.cs | 195 + .../BasicData/Appliance.aspx.designer.cs | 197 + SCP/Views/BasicData/Appliance_DETAIL.aspx | 46 + SCP/Views/BasicData/Appliance_DETAIL.aspx.cs | 109 + .../Appliance_DETAIL.aspx.designer.cs | 161 + SCP/Views/BasicData/BoxType.aspx | 67 + SCP/Views/BasicData/BoxType.aspx.cs | 118 + SCP/Views/BasicData/BoxType.aspx.designer.cs | 116 + SCP/Views/BasicData/Part.aspx | 22 +- SCP/Views/BasicData/Pinfan.aspx | 65 + SCP/Views/BasicData/Pinfan.aspx.cs | 145 + SCP/Views/BasicData/Pinfan.aspx.designer.cs | 116 + SCP/Views/BasicData/ProductionLine.aspx | 72 + SCP/Views/BasicData/ProductionLine.aspx.cs | 154 + .../BasicData/ProductionLine.aspx.designer.cs | 107 + SCP/Views/BasicData/PurchaGroup.aspx | 83 + SCP/Views/BasicData/PurchaGroup.aspx.cs | 175 + .../BasicData/PurchaGroup.aspx.designer.cs | 143 + SCP/Views/BasicData/PurchaGroup_DETAIL.aspx | 39 + .../BasicData/PurchaGroup_DETAIL.aspx.cs | 70 + .../PurchaGroup_DETAIL.aspx.designer.cs | 89 + SCP/Views/BasicData/SCP_RECRINFORMTION.aspx | 100 + .../BasicData/SCP_RECRINFORMTION.aspx.cs | 165 + .../SCP_RECRINFORMTION.aspx.designer.cs | 170 + SCP/Views/BasicData/Storage.aspx | 78 + SCP/Views/BasicData/Storage.aspx.cs | 163 + SCP/Views/BasicData/Storage.aspx.designer.cs | 116 + SCP/Views/BasicData/SubPart.aspx | 72 + SCP/Views/BasicData/SubPart.aspx.cs | 154 + SCP/Views/BasicData/SubPart.aspx.designer.cs | 107 + SCP/Views/BasicData/Supplier.aspx | 5 +- SCP/Views/BasicData/Supplier.aspx.cs | 27 + SCP/Views/BasicData/Supplier.aspx.designer.cs | 9 + SCP/Views/BasicData/TA_VehicleModel.aspx | 67 + SCP/Views/BasicData/TA_VehicleModel.aspx.cs | 132 + .../TA_VehicleModel.aspx.designer.cs | 125 + SCP/Views/PlanData/SCP_ASK.aspx | 40 +- SCP/Views/PlanData/SCP_ASK.aspx.cs | 135 +- SCP/Views/PlanData/SCP_ASK.aspx.designer.cs | 70 +- SCP/Views/PlanData/SCP_ASK_DETAIL.aspx | 29 +- SCP/Views/PlanData/SCP_ASK_DETAIL.aspx.cs | 19 +- .../PlanData/SCP_ASN_DETAIL_View.aspx.cs | 2 +- SCP/Views/PlanData/SCP_INCOMPLETE_ASK.aspx | 16 +- SCP/Views/PlanData/SCP_INVOICE_EDIT.aspx.cs | 8 +- SCP/Views/PlanData/SCP_PO.aspx | 53 +- SCP/Views/PlanData/SCP_PO.aspx.cs | 81 +- SCP/Views/PlanData/SCP_PO.aspx.designer.cs | 44 +- SCP/Views/PlanData/SCP_PO_CREATE_ASK.aspx | 2 +- SCP/Views/PlanData/SCP_PO_CREATE_ASK.aspx.cs | 7 +- SCP/Views/PlanData/SCP_PO_DETAIL.aspx | 39 +- SCP/Views/PlanData/SCP_PO_DETAIL.aspx.cs | 44 +- .../PlanData/SCP_PO_DETAIL.aspx.designer.cs | 57 +- SCP/Views/PlanData/SCP_PO_EXTEND.aspx | 2 +- SCP/Views/PlanData/SCP_RECEIVE_DETAIL.aspx | 111 + SCP/Views/PlanData/SCP_RECEIVE_DETAIL.aspx.cs | 113 + .../SCP_RECEIVE_DETAIL.aspx.designer.cs | 206 + SCP/Views/SupplierData/SCP_ASK.aspx | 43 +- SCP/Views/SupplierData/SCP_ASK.aspx.cs | 91 +- .../SupplierData/SCP_ASK.aspx.designer.cs | 40 +- SCP/Views/SupplierData/SCP_ASK_DETAIL.aspx | 28 +- SCP/Views/SupplierData/SCP_ASK_DETAIL.aspx.cs | 16 +- SCP/Views/SupplierData/SCP_ASN.aspx | 17 +- SCP/Views/SupplierData/SCP_ASN.aspx.cs | 72 +- .../SupplierData/SCP_ASN.aspx.designer.cs | 27 + SCP/Views/SupplierData/SCP_ASN_CREATE.aspx | 27 +- SCP/Views/SupplierData/SCP_ASN_CREATE.aspx.cs | 180 +- .../SCP_ASN_CREATE.aspx.designer.cs | 9 + SCP/Views/SupplierData/SCP_ASN_DETAIL.aspx | 39 +- SCP/Views/SupplierData/SCP_ASN_DETAIL.aspx.cs | 90 +- .../SCP_ASN_DETAIL.aspx.designer.cs | 5 +- SCP/Views/SupplierData/SCP_ASN_DETAIL_FT.aspx | 185 + .../SupplierData/SCP_ASN_DETAIL_FT.aspx.cs | 586 ++ .../SCP_ASN_DETAIL_FT.aspx.designer.cs | 332 + .../SupplierData/SCP_ASN_MANYCREATE.aspx | 214 + .../SupplierData/SCP_ASN_MANYCREATE.aspx.cs | 492 ++ .../SCP_ASN_MANYCREATE.aspx.designer.cs | 368 + SCP/Views/SupplierData/SCP_ASN_ORINUMBER.aspx | 63 + .../SupplierData/SCP_ASN_ORINUMBER.aspx.cs | 94 + .../SCP_ASN_ORINUMBER.aspx.designer.cs | 80 + SCP/Views/SupplierData/SCP_QUALITY.aspx.cs | 2 +- SCP/Views/SupplierData/SCP_RECEIVE_LIST.aspx | 12 +- .../SupplierData/SCP_SHIP_DETAIL_BARCODE.aspx | 2 +- .../SCP_SHIP_DETAIL_BARCODE.aspx.cs | 18 +- .../SupplierLogistics/SCP_ASN_DETAIL.aspx.cs | 2 +- .../WarehouseData/SCP_INVOICE_DELTAIL.aspx | 16 +- .../SCP_INVOICE_DELTAIL.aspx.designer.cs | 104 +- .../富维冲插件/SCP_MAXPO_INCOMPLETE.aspx | 127 + .../SCP_MAXPO_INCOMPLETE.aspx.cs | 171 + .../SCP_MAXPO_INCOMPLETE.aspx.designer.cs | 242 + .../SCP_MAXPO_INCOMPLETE_DETAIL.aspx | 67 + .../SCP_MAXPO_INCOMPLETE_DETAIL.aspx.cs | 110 + ...P_MAXPO_INCOMPLETE_DETAIL.aspx.designer.cs | 116 + SCP/Views/富维冲插件/SCP_PO.aspx | 168 + SCP/Views/富维冲插件/SCP_PO.aspx.cs | 383 + .../富维冲插件/SCP_PO.aspx.designer.cs | 359 + SCP/Views/富维冲插件/SCP_PO_EXTEND.aspx | 207 +- .../富维冲插件/SCP_PO_EXTEND.aspx.cs | 281 +- .../SCP_PO_EXTEND.aspx.designer.cs | 105 +- SCP/Views/富维冲插件/SCP_PO_MAX.aspx | 123 + SCP/Views/富维冲插件/SCP_PO_MAX.aspx.cs | 338 + .../SCP_PO_MAX.aspx.designer.cs | 269 + .../富维冲插件/SCP_PO_MAX_DETAIL.aspx | 87 + .../富维冲插件/SCP_PO_MAX_DETAIL.aspx.cs | 180 + .../SCP_PO_MAX_DETAIL.aspx.designer.cs | 143 + SCP/Views/富维冲插件/SCP_PO_QH.aspx | 167 + SCP/Views/富维冲插件/SCP_PO_QH.aspx.cs | 391 + .../SCP_PO_QH.aspx.designer.cs | 368 + .../富维冲插件/SCP_PO_QH_DETAIL.aspx | 113 + .../富维冲插件/SCP_PO_QH_DETAIL.aspx.cs | 174 + .../SCP_PO_QH_DETAIL.aspx.designer.cs | 197 + .../富维冲插件/SCP_PO_SUBDETAIL.aspx | 64 + .../富维冲插件/SCP_PO_SUBDETAIL.aspx.cs | 46 + .../SCP_PO_SUBDETAIL.aspx.designer.cs | 116 + SCP/Views/富维冲插件/SCP_PO_SUBPART.aspx | 61 + .../富维冲插件/SCP_PO_SUBPART.aspx.cs | 106 + .../SCP_PO_SUBPART.aspx.designer.cs | 80 + SCP/Views/富维本特勒/SCP_PO_EXTEND.aspx | 159 + .../富维本特勒/SCP_PO_EXTEND.aspx.cs | 270 + .../SCP_PO_EXTEND.aspx.designer.cs | 341 + .../富维本特勒/SupplierData/SCP_ASK.aspx | 161 + .../SupplierData/SCP_ASK.aspx.cs | 404 + .../SupplierData/SCP_ASK.aspx.designer.cs | 404 + .../SupplierData/SCP_ASK_DETAIL.aspx | 118 + .../SupplierData/SCP_ASK_DETAIL.aspx.cs | 158 + .../SCP_ASK_DETAIL.aspx.designer.cs | 224 + .../富维本特勒/SupplierData/SCP_ASN.aspx | 136 + .../SupplierData/SCP_ASN.aspx.cs | 239 + .../SupplierData/SCP_ASN.aspx.designer.cs | 350 + .../SupplierData/SCP_ASN_CREATE.aspx | 222 + .../SupplierData/SCP_ASN_CREATE.aspx.cs | 591 ++ .../SCP_ASN_CREATE.aspx.designer.cs | 368 + .../SupplierData/SCP_ASN_DETAIL.aspx | 187 + .../SupplierData/SCP_ASN_DETAIL.aspx.cs | 645 ++ .../SCP_ASN_DETAIL.aspx.designer.cs | 350 + .../SupplierData/SCP_ASN_DETAIL_FT.aspx | 187 + .../SupplierData/SCP_ASN_DETAIL_FT.aspx.cs | 636 ++ .../SCP_ASN_DETAIL_FT.aspx.designer.cs | 359 + .../SupplierData/SCP_PALLET.aspx | 64 + .../SupplierData/SCP_PALLET.aspx.cs | 131 + .../SupplierData/SCP_PALLET.aspx.designer.cs | 116 + .../SupplierData/SCP_SHIP_DETAIL_BARCODE.aspx | 69 + .../SCP_SHIP_DETAIL_BARCODE.aspx.cs | 141 + .../SCP_SHIP_DETAIL_BARCODE.aspx.designer.cs | 179 + .../SupplierData/SCP_TP_DETAIL_BARCODE.aspx | 73 + .../SCP_TP_DETAIL_BARCODE.aspx.cs | 154 + .../SCP_TP_DETAIL_BARCODE.aspx.designer.cs | 179 + .../SupplierData/SCP_ASN_DETAIL.aspx.cs | 2 +- .../WarehouseData/SCP_INVOICE.aspx | 4 +- .../WarehouseData/SCP_INVOICE_CONFIRM.aspx | 3 +- SCP/Web.config | 185 +- SCP/default.aspx | 12 +- SCP/default.aspx.cs | 64 +- SCP/default_CYJ.aspx | 281 + SCP/default_CYJ.aspx.cs | 395 + SCP/default_CYJ.aspx.designer.cs | 386 + SCP/default_XG.aspx | 339 + SCP/default_XG.aspx.cs | 359 + SCP/default_XG.aspx.designer.cs | 395 + SCP/grf/Material.grf | 2 +- SCP/grf/SendBill.grf | 2 +- SCP/res/css/main2.css | 216 + SCP/res/css/main3.css | 231 + SCP/res/images/JZJH1.png | Bin 0 -> 1154211 bytes SCP/res/images/JZJH11.png | Bin 0 -> 132295 bytes SCP/res/images/JZfoot.png | Bin 0 -> 149203 bytes SCP/res/images/air-balloon-1.png | Bin 6506 -> 550086 bytes SCP/res/images/air-balloon-2.png | Bin 4602 -> 15556 bytes SCP/res/images/beijing.png | Bin 0 -> 123557 bytes SCP/res/images/denglu.png | Bin 0 -> 4818 bytes SCP/res/images/login.png | Bin 38326 -> 4027 bytes UniApiGroup/App.config | 20 +- UniApiGroup/AppBox数据库设置.ini | Bin 155 -> 334 bytes UniApiGroup/CK.SCP.GrupUniApi.csproj | 19 + UniApiGroup/Config/UniApiConfig.cs | 7 +- .../Controller/DBControllerByOracle.cs | 120 + UniApiGroup/Controller/Datatablecontroller.cs | 36 + UniApiGroup/Controller/NetPriceController.cs | 68 + .../Controller/OdbcApiQadController.cs | 981 ++- .../Controller/OdbcApiScpController.cs | 600 +- .../Controller/OdbcApiWmsController.cs | 122 +- UniApiGroup/Controller/PoBillNumcontroller.cs | 69 + UniApiGroup/Controller/PriceController.cs | 68 + UniApiGroup/Controller/QmStockController.cs | 69 + UniApiGroup/Controller/Vendercontroller.cs | 67 + .../Controller/vendidpartcontroller.cs | 50 + UniApiGroup/Properties/Resources.Designer.cs | 10 +- UniApiGroup/Properties/Settings.Designer.cs | 4 +- UniApiGroup/QadOdbcApi.cs | 3 +- UniApiGroup/Scp数据库设置.ini | Bin 290 -> 322 bytes UniApiGroup/执行周期设置.ini | Bin 462 -> 462 bytes UniApiGroup/通用设置.ini | Bin 338 -> 332 bytes UniApiWpf/App.config | 32 +- UniApiWpf/Properties/Resources.Designer.cs | 60 +- UniApiWpf/Properties/Settings.Designer.cs | 30 +- UniApiWpf/UniApiWpf.csproj | 1 + Utils/app.config | 8 +- WebService/DEncrypt.cs | 225 + WebService/Properties/AssemblyInfo.cs | 35 + .../PublishProfiles/FolderProfile.pubxml | 16 + WebService/Web.Debug.config | 31 + WebService/Web.Release.config | 32 + WebService/Web.config | 55 + WebService/WebService.asmx | 1 + WebService/WebService.asmx.cs | 98 + WebService/WebService.csproj | 140 + WebService/packages.config | 5 + 344 files changed, 55268 insertions(+), 2925 deletions(-) create mode 100644 Controller/Properties/Settings.Designer.cs create mode 100644 Controller/Properties/Settings.settings create mode 100644 Controller/Web References/BomList/JsonService.disco create mode 100644 Controller/Web References/BomList/JsonService.wsdl create mode 100644 Controller/Web References/BomList/Reference.cs create mode 100644 Controller/Web References/BomList/Reference.map create mode 100644 Controller/Web References/BomList1/JsonService.disco create mode 100644 Controller/Web References/BomList1/JsonService.wsdl create mode 100644 Controller/Web References/BomList1/Reference.cs create mode 100644 Controller/Web References/BomList1/Reference.map create mode 100644 Controller/Web References/BomListcompany/JsonService.disco create mode 100644 Controller/Web References/BomListcompany/JsonService.wsdl create mode 100644 Controller/Web References/BomListcompany/Reference.cs create mode 100644 Controller/Web References/BomListcompany/Reference.map create mode 100644 Controller/Web References/BomVersion/JsonService.disco create mode 100644 Controller/Web References/BomVersion/JsonService.wsdl create mode 100644 Controller/Web References/BomVersion/Reference.cs create mode 100644 Controller/Web References/BomVersion/Reference.map create mode 100644 Controller/Web References/BomVersion1/JsonService.disco create mode 100644 Controller/Web References/BomVersion1/JsonService.wsdl create mode 100644 Controller/Web References/BomVersion1/Reference.cs create mode 100644 Controller/Web References/BomVersion1/Reference.map create mode 100644 Models/AppBoxEntity/UserToken.cs create mode 100644 Models/ScpEntity/ExcelExportEnttity/SCP_APPLIANCE_EXPOPT.cs create mode 100644 Models/ScpEntity/ExcelExportEnttity/SCP_MAXPODC_EXPORT.cs create mode 100644 Models/ScpEntity/ExcelExportEnttity/SCP_MAXPO_DETAIL_EXPORT.cs create mode 100644 Models/ScpEntity/ExcelExportEnttity/SCP_MAXPO_EXPORT.cs create mode 100644 Models/ScpEntity/PURSubcontractor.cs create mode 100644 Models/ScpEntity/TA_ASK_SUBPART.cs create mode 100644 Models/ScpEntity/TA_Appliance.cs create mode 100644 Models/ScpEntity/TA_BOXTYPE.cs create mode 100644 Models/ScpEntity/TA_CarModel.cs create mode 100644 Models/ScpEntity/TA_PinFan.cs create mode 100644 Models/ScpEntity/TA_ProductionLine.cs create mode 100644 Models/ScpEntity/TA_PurchasGroup.cs create mode 100644 Models/ScpEntity/TA_Receiving_Information.cs create mode 100644 Models/ScpEntity/TA_StorageLocation.cs create mode 100644 Models/ScpEntity/TA_SubPart.cs create mode 100644 Models/ScpEntity/TA_SubPartCode.cs create mode 100644 Models/ScpEntity/TB_ASN_PARTBOX.cs create mode 100644 Models/ScpEntity/TB_MAXPO.cs create mode 100644 Models/ScpEntity/TB_MAXPO_CONSUME.cs create mode 100644 Models/ScpEntity/TB_MAXPO_DETAIL.cs create mode 100644 Models/ScpEntity/TB_NetPrice.cs create mode 100644 Models/ScpEntity/TB_PALLETS_BTL.cs create mode 100644 Models/ScpEntity/TB_PO_SUBDETAIL.cs create mode 100644 Models/ScpEntity/TB_SUPPLIER_MAIL.cs create mode 100644 Models/ScpEntity/TM_CYJ_BOM.cs create mode 100644 Models/ScpEntity/V_TA_APPLIANCE.cs create mode 100644 Models/ScpEntity/V_TA_SubPartCode.cs create mode 100644 Models/ScpEntity/V_TB_MAXPO.cs create mode 100644 Models/ScpEntity/V_TB_MAXPO_CONSUME .cs create mode 100644 Models/ScpEntity/V_TB_MAXPO_DETAIL.cs create mode 100644 Models/ScpEntity/V_TB_PO_SUBDETAIL.cs create mode 100644 Models/ScpEntity/V_TB_REEEE.cs create mode 100644 Models/UniApiEntity/PURReplenishQty.cs create mode 100644 Models/UniApiEntity/xxDiMaxes.cs create mode 100644 Models/UniApiEntity/xxDiMaxes_Po.cs create mode 100644 Models/UniApiEntity/xxerp_MaxbatchNO.cs create mode 100644 Models/UniApiEntity/xxscm_maxpo_det.cs create mode 100644 SCP/Properties/PublishProfiles/FolderProfile1.pubxml create mode 100644 SCP/Properties/PublishProfiles/FolderProfile2.pubxml create mode 100644 SCP/Views/BasicData/Appliance.aspx create mode 100644 SCP/Views/BasicData/Appliance.aspx.cs create mode 100644 SCP/Views/BasicData/Appliance.aspx.designer.cs create mode 100644 SCP/Views/BasicData/Appliance_DETAIL.aspx create mode 100644 SCP/Views/BasicData/Appliance_DETAIL.aspx.cs create mode 100644 SCP/Views/BasicData/Appliance_DETAIL.aspx.designer.cs create mode 100644 SCP/Views/BasicData/BoxType.aspx create mode 100644 SCP/Views/BasicData/BoxType.aspx.cs create mode 100644 SCP/Views/BasicData/BoxType.aspx.designer.cs create mode 100644 SCP/Views/BasicData/Pinfan.aspx create mode 100644 SCP/Views/BasicData/Pinfan.aspx.cs create mode 100644 SCP/Views/BasicData/Pinfan.aspx.designer.cs create mode 100644 SCP/Views/BasicData/ProductionLine.aspx create mode 100644 SCP/Views/BasicData/ProductionLine.aspx.cs create mode 100644 SCP/Views/BasicData/ProductionLine.aspx.designer.cs create mode 100644 SCP/Views/BasicData/PurchaGroup.aspx create mode 100644 SCP/Views/BasicData/PurchaGroup.aspx.cs create mode 100644 SCP/Views/BasicData/PurchaGroup.aspx.designer.cs create mode 100644 SCP/Views/BasicData/PurchaGroup_DETAIL.aspx create mode 100644 SCP/Views/BasicData/PurchaGroup_DETAIL.aspx.cs create mode 100644 SCP/Views/BasicData/PurchaGroup_DETAIL.aspx.designer.cs create mode 100644 SCP/Views/BasicData/SCP_RECRINFORMTION.aspx create mode 100644 SCP/Views/BasicData/SCP_RECRINFORMTION.aspx.cs create mode 100644 SCP/Views/BasicData/SCP_RECRINFORMTION.aspx.designer.cs create mode 100644 SCP/Views/BasicData/Storage.aspx create mode 100644 SCP/Views/BasicData/Storage.aspx.cs create mode 100644 SCP/Views/BasicData/Storage.aspx.designer.cs create mode 100644 SCP/Views/BasicData/SubPart.aspx create mode 100644 SCP/Views/BasicData/SubPart.aspx.cs create mode 100644 SCP/Views/BasicData/SubPart.aspx.designer.cs create mode 100644 SCP/Views/BasicData/TA_VehicleModel.aspx create mode 100644 SCP/Views/BasicData/TA_VehicleModel.aspx.cs create mode 100644 SCP/Views/BasicData/TA_VehicleModel.aspx.designer.cs create mode 100644 SCP/Views/PlanData/SCP_RECEIVE_DETAIL.aspx create mode 100644 SCP/Views/PlanData/SCP_RECEIVE_DETAIL.aspx.cs create mode 100644 SCP/Views/PlanData/SCP_RECEIVE_DETAIL.aspx.designer.cs create mode 100644 SCP/Views/SupplierData/SCP_ASN_DETAIL_FT.aspx create mode 100644 SCP/Views/SupplierData/SCP_ASN_DETAIL_FT.aspx.cs create mode 100644 SCP/Views/SupplierData/SCP_ASN_DETAIL_FT.aspx.designer.cs create mode 100644 SCP/Views/SupplierData/SCP_ASN_MANYCREATE.aspx create mode 100644 SCP/Views/SupplierData/SCP_ASN_MANYCREATE.aspx.cs create mode 100644 SCP/Views/SupplierData/SCP_ASN_MANYCREATE.aspx.designer.cs create mode 100644 SCP/Views/SupplierData/SCP_ASN_ORINUMBER.aspx create mode 100644 SCP/Views/SupplierData/SCP_ASN_ORINUMBER.aspx.cs create mode 100644 SCP/Views/SupplierData/SCP_ASN_ORINUMBER.aspx.designer.cs create mode 100644 SCP/Views/富维冲插件/SCP_MAXPO_INCOMPLETE.aspx create mode 100644 SCP/Views/富维冲插件/SCP_MAXPO_INCOMPLETE.aspx.cs create mode 100644 SCP/Views/富维冲插件/SCP_MAXPO_INCOMPLETE.aspx.designer.cs create mode 100644 SCP/Views/富维冲插件/SCP_MAXPO_INCOMPLETE_DETAIL.aspx create mode 100644 SCP/Views/富维冲插件/SCP_MAXPO_INCOMPLETE_DETAIL.aspx.cs create mode 100644 SCP/Views/富维冲插件/SCP_MAXPO_INCOMPLETE_DETAIL.aspx.designer.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO.aspx create mode 100644 SCP/Views/富维冲插件/SCP_PO.aspx.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO.aspx.designer.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO_MAX.aspx create mode 100644 SCP/Views/富维冲插件/SCP_PO_MAX.aspx.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO_MAX.aspx.designer.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO_MAX_DETAIL.aspx create mode 100644 SCP/Views/富维冲插件/SCP_PO_MAX_DETAIL.aspx.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO_MAX_DETAIL.aspx.designer.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO_QH.aspx create mode 100644 SCP/Views/富维冲插件/SCP_PO_QH.aspx.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO_QH.aspx.designer.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO_QH_DETAIL.aspx create mode 100644 SCP/Views/富维冲插件/SCP_PO_QH_DETAIL.aspx.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO_QH_DETAIL.aspx.designer.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO_SUBDETAIL.aspx create mode 100644 SCP/Views/富维冲插件/SCP_PO_SUBDETAIL.aspx.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO_SUBDETAIL.aspx.designer.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO_SUBPART.aspx create mode 100644 SCP/Views/富维冲插件/SCP_PO_SUBPART.aspx.cs create mode 100644 SCP/Views/富维冲插件/SCP_PO_SUBPART.aspx.designer.cs create mode 100644 SCP/Views/富维本特勒/SCP_PO_EXTEND.aspx create mode 100644 SCP/Views/富维本特勒/SCP_PO_EXTEND.aspx.cs create mode 100644 SCP/Views/富维本特勒/SCP_PO_EXTEND.aspx.designer.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASK.aspx create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASK.aspx.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASK.aspx.designer.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASK_DETAIL.aspx create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASK_DETAIL.aspx.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASK_DETAIL.aspx.designer.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASN.aspx create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASN.aspx.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASN.aspx.designer.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASN_CREATE.aspx create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASN_CREATE.aspx.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASN_CREATE.aspx.designer.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASN_DETAIL.aspx create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASN_DETAIL.aspx.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASN_DETAIL.aspx.designer.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASN_DETAIL_FT.aspx create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASN_DETAIL_FT.aspx.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_ASN_DETAIL_FT.aspx.designer.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_PALLET.aspx create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_PALLET.aspx.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_PALLET.aspx.designer.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_SHIP_DETAIL_BARCODE.aspx create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_SHIP_DETAIL_BARCODE.aspx.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_SHIP_DETAIL_BARCODE.aspx.designer.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_TP_DETAIL_BARCODE.aspx create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_TP_DETAIL_BARCODE.aspx.cs create mode 100644 SCP/Views/富维本特勒/SupplierData/SCP_TP_DETAIL_BARCODE.aspx.designer.cs create mode 100644 SCP/default_CYJ.aspx create mode 100644 SCP/default_CYJ.aspx.cs create mode 100644 SCP/default_CYJ.aspx.designer.cs create mode 100644 SCP/default_XG.aspx create mode 100644 SCP/default_XG.aspx.cs create mode 100644 SCP/default_XG.aspx.designer.cs create mode 100644 SCP/res/css/main2.css create mode 100644 SCP/res/css/main3.css create mode 100644 SCP/res/images/JZJH1.png create mode 100644 SCP/res/images/JZJH11.png create mode 100644 SCP/res/images/JZfoot.png create mode 100644 SCP/res/images/beijing.png create mode 100644 SCP/res/images/denglu.png create mode 100644 UniApiGroup/Controller/DBControllerByOracle.cs create mode 100644 UniApiGroup/Controller/Datatablecontroller.cs create mode 100644 UniApiGroup/Controller/NetPriceController.cs create mode 100644 UniApiGroup/Controller/PoBillNumcontroller.cs create mode 100644 UniApiGroup/Controller/PriceController.cs create mode 100644 UniApiGroup/Controller/QmStockController.cs create mode 100644 UniApiGroup/Controller/Vendercontroller.cs create mode 100644 UniApiGroup/Controller/vendidpartcontroller.cs create mode 100644 WebService/DEncrypt.cs create mode 100644 WebService/Properties/AssemblyInfo.cs create mode 100644 WebService/Properties/PublishProfiles/FolderProfile.pubxml create mode 100644 WebService/Web.Debug.config create mode 100644 WebService/Web.Release.config create mode 100644 WebService/Web.config create mode 100644 WebService/WebService.asmx create mode 100644 WebService/WebService.asmx.cs create mode 100644 WebService/WebService.csproj create mode 100644 WebService/packages.config diff --git a/Common/CK.SCP.Common.csproj b/Common/CK.SCP.Common.csproj index e8af561..add89b3 100644 --- a/Common/CK.SCP.Common.csproj +++ b/Common/CK.SCP.Common.csproj @@ -11,6 +11,7 @@ CK.SCP.Common v4.5.2 512 + true diff --git a/Common/MyWebSmtpMail.cs b/Common/MyWebSmtpMail.cs index 87a5adb..6b40df6 100644 --- a/Common/MyWebSmtpMail.cs +++ b/Common/MyWebSmtpMail.cs @@ -33,7 +33,7 @@ namespace CK.SCP.Common this.server = Server; this.password = Password; this.username = UserName; - this.enablessl = false; + this.enablessl = true; this.port = Port; this.credentials = false; } diff --git a/Common/app.config b/Common/app.config index b5d2fd5..5573142 100644 --- a/Common/app.config +++ b/Common/app.config @@ -1,11 +1,11 @@ - + - - + + - \ No newline at end of file + diff --git a/Controller/CK.SCP.Controller.csproj b/Controller/CK.SCP.Controller.csproj index b2f6237..38d55c9 100644 --- a/Controller/CK.SCP.Controller.csproj +++ b/Controller/CK.SCP.Controller.csproj @@ -11,6 +11,7 @@ CK.SCP.Controller v4.5.2 512 + true @@ -30,6 +31,9 @@ 4 + + D:\连接orlcor\ChangKeTec.Utils.dll + ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll @@ -45,15 +49,28 @@ + + + + + + False + C:\Users\Administrator\Desktop\Z.EntityFramework.Extensions.dll + + + True + True + Settings.settings + @@ -97,6 +114,26 @@ + + True + True + Reference.map + + + True + True + Reference.map + + + True + True + Reference.map + + + True + True + Reference.map + @@ -111,7 +148,94 @@ + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + MSDiscoCodeGenerator + Reference.cs + + + + MSDiscoCodeGenerator + Reference.cs + + + + MSDiscoCodeGenerator + Reference.cs + + + + MSDiscoCodeGenerator + Reference.cs + + + + + + + + + + + Dynamic + Web References\BomList\ + http://10.62.144.124:8016/JsonService.asmx%3f + + + + + Settings + CK_SCP_Controller_BomList_JsonService + + + Dynamic + Web References\BomList1\ + http://10.62.144.124:8070/JsonService.asmx%3f + + + + + Settings + CK_SCP_Controller_BomList1_JsonService + + + Dynamic + Web References\BomVersion1\ + http://10.89.25.69:8085/JsonService.asmx + + + + + Settings + CK_SCP_Controller_BomVersion1_JsonService + + + Dynamic + Web References\BomListcompany\ + http://192.168.0.228:7602/JsonService.asmx%3f + + + + + Settings + CK_SCP_Controller_BomListcompany_JsonService + + + + + + + + + + + + + - \ No newline at end of file diff --git a/Controller/Properties/Settings.Designer.cs b/Controller/Properties/Settings.Designer.cs new file mode 100644 index 0000000..8934f62 --- /dev/null +++ b/Controller/Properties/Settings.Designer.cs @@ -0,0 +1,66 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace CK.SCP.Controller.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] + [global::System.Configuration.DefaultSettingValueAttribute("http://10.89.25.69:8085/JsonService.asmx")] + public string CK_SCP_Controller_BomVersion1_JsonService { + get { + return ((string)(this["CK_SCP_Controller_BomVersion1_JsonService"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] + [global::System.Configuration.DefaultSettingValueAttribute("http://10.62.144.124:8016/JsonService.asmx")] + public string CK_SCP_Controller_BomList_JsonService { + get { + return ((string)(this["CK_SCP_Controller_BomList_JsonService"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] + [global::System.Configuration.DefaultSettingValueAttribute("http://192.168.0.228:7602/JsonService.asmx")] + public string CK_SCP_Controller_BomListcompany_JsonService { + get { + return ((string)(this["CK_SCP_Controller_BomListcompany_JsonService"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] + [global::System.Configuration.DefaultSettingValueAttribute("http://10.62.144.124:8070/JsonService.asmx")] + public string CK_SCP_Controller_BomList1_JsonService { + get { + return ((string)(this["CK_SCP_Controller_BomList1_JsonService"])); + } + } + } +} diff --git a/Controller/Properties/Settings.settings b/Controller/Properties/Settings.settings new file mode 100644 index 0000000..dac40e1 --- /dev/null +++ b/Controller/Properties/Settings.settings @@ -0,0 +1,18 @@ + + + + + + http://10.89.25.69:8085/JsonService.asmx + + + http://10.62.144.124:8016/JsonService.asmx + + + http://192.168.0.228:7602/JsonService.asmx + + + http://10.62.144.124:8070/JsonService.asmx + + + \ No newline at end of file diff --git a/Controller/ResultObject.cs b/Controller/ResultObject.cs index 4786bb9..86ef8c4 100644 --- a/Controller/ResultObject.cs +++ b/Controller/ResultObject.cs @@ -1,4 +1,6 @@ -using System; +using CK.SCP.Models.ScpEntity; +using CK.SCP.Models.ScpEntity.ExcelExportEnttity; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; @@ -16,18 +18,16 @@ namespace CK.SCP.Controller public ResultObject() { ErrorList = new List(); - MessageList = new List(); - - - } + MessageList = new List(); + Kblist = new List(); + } public string Message { set; get; } - public List MessageList { set; get; } - - /// - /// 返回结果 - /// - public T Result { set; get; } + public List Kblist { set; get; } + /// + /// 返回结果 + /// + public T Result { set; get; } /// /// 错误列表 /// diff --git a/Controller/SCP_ASK_CONTROLLER.cs b/Controller/SCP_ASK_CONTROLLER.cs index de89ec5..29e9894 100644 --- a/Controller/SCP_ASK_CONTROLLER.cs +++ b/Controller/SCP_ASK_CONTROLLER.cs @@ -165,10 +165,440 @@ namespace CK.SCP.Controller throw e; } } + public static List Getlist(string ASK) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + return db.TA_ASK_SUBPART.Where(p=>p.AskBillNum==ASK&&string.IsNullOrEmpty(p.VendBatch)).ToList(); + } + } + public static ResultObject Update_User_ErrorCount(string p_userName,int count ) + { + ResultObject _ret = new ResultObject(); + try + { + using (AppBoxContext _appdb = EntitiesFactory.CreateAppBoxInstance()) + { + var user = _appdb.Users.FirstOrDefault(p => p.Name == p_userName); + if (user != null) + { + user.ErrorCount = user.ErrorCount + 1; + if(user.ErrorCount== count) + { + user.Enabled = false; + _ret.Message = $"密码错误超过【{count}】次,账号已锁定请联系管理员"; + } + else + { + _ret.Message = $"密码错误,再输入错【{count - user.ErrorCount}】次后账户将锁定!"; + } + } + int state = _appdb.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Update_User_ErrorCount", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Update_User_ErrorCount", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Update_User_ErrorCount", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Update_User_ErrorCount", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + public static ResultObject Add_Vendusers(List p_order_list, string site) + { + ResultObject _ret = new ResultObject(); + try + { + using (AppBoxContext _appdb = EntitiesFactory.CreateAppBoxInstance()) + { + foreach (var vend in p_order_list) + { + string na = vend + "@" + site; + var user = _appdb.Users.FirstOrDefault(p => p.Name == na); + if (user != null) + { + VenderUsers _entit = new VenderUsers(); + _entit.UserId = user.ID; + _entit.VenderId = vend; + _appdb.VenderUsers.Add(_entit); + _appdb.SaveChanges(); + } + + } + + + + //int state = _appdb.SaveChanges(); + //if (state != -1) + //{ + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + //} + //else + //{ + // _ret.State = ReturnStatus.Failed; + // _ret.Result = false; + //} + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + public static ResultObject Add_ASK_SUBPART(string ask) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + var askdetail = db.TB_ASK_DETAIL.Where(p => p.AskBillNum == ask).ToList(); + var subcount = db.TA_ASK_SUBPART.Count(p => p.AskBillNum == ask); + if (subcount == 0) + { + foreach (var ak in askdetail) + { + var sub = db.TA_SubPartCode.Where(p => p.PartCode == ak.PartCode).ToList(); + if (sub.Count() > 0) + { + foreach(var su in sub) + { + TA_ASK_SUBPART subpart = new TA_ASK_SUBPART(); + subpart.PartCode = su.PartCode; + subpart.SubPartCode = su.SubPartCode; + subpart.BOMedtiton = su.BOMedtiton; + subpart.AskBillNum = ask; + subpart.Qty = su.Qty; + db.TA_ASK_SUBPART.AddOrUpdate(subpart); + db.TA_SubPartCode.Remove(su); + } + } + + } + } + + if (_ret.MessageList.Count > 0) + { + _ret.State = ReturnStatus.Failed; + + } + else + { + if (db.SaveChanges() != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + + public static ResultObject Add_Vend_User(List p_order_list, string site) + { + ResultObject _ret = new ResultObject(); + try + { + using (AppBoxContext _appdb = EntitiesFactory.CreateAppBoxInstance()) + { + foreach (var vend in p_order_list) + { + var user = _appdb.Users.FirstOrDefault(p => p.Name == vend); + + if (user == null) + { + var _factory = _appdb.TA_FACTORY.Where(p => p.ErpDomain == site).FirstOrDefault(); + var _vend = _appdb.Roles.Where(p => p.Name == "供应商").FirstOrDefault(); + User _entity = new User(); + string na = vend + "@" + site; + _entity.Name = na; + _entity.Remark = site; + _entity.Password = PasswordUtil.CreateDbPassword("555555"); + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + var vendname = db.TA_VENDER.FirstOrDefault(p => p.VendId == vend); + _entity.ChineseName = vendname.VendName; + } + _entity.Email = vend + "@163.com"; + _entity.Gender = "男"; + _entity.Enabled = true; + _entity.Roles = new List(); + + Role t = _appdb.Set().Local.Where(x => x.ID == _vend.ID).FirstOrDefault(); + if (t == null) + { + t = new Role { ID = _vend.ID }; + _appdb.Set().Attach(t); + } + _entity.Roles.Add(t); + _entity.TA_FACTORY = new List(); + TA_FACTORY f = _appdb.Set().Local.Where(x => x.ID == _factory.ID).FirstOrDefault(); + if (f == null) + { + f = new TA_FACTORY { ID = _factory.ID }; + _appdb.Set().Attach(f); + } + _entity.TA_FACTORY.Add(f); + _appdb.Users.Add(_entity); + _appdb.SaveChanges(); + + } + } + + + + //int state = _appdb.SaveChanges(); + //if (state != -1) + //{ + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + //} + //else + //{ + // _ret.State = ReturnStatus.Failed; + // _ret.Result = false; + //} + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", ex.ToString()); + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } /// /// 要货看板减产数量 @@ -488,6 +918,7 @@ namespace CK.SCP.Controller throw e; } } + public static List RejectQty_SUM(List p_list) { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) @@ -1198,7 +1629,221 @@ namespace CK.SCP.Controller + public static ResultObject Save_ASK_TO_WWDZJASN(V_TB_ASK p_ask, List p_order_list, string p_PlateNumber + , string p_buyer, string p_buyerPhone) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + TB_ASN _t = new TB_ASN(); + _t.AsnBillNum = SCP_BILLCODE_CONTROLLER.MakeASNCode(); + _t.AskBillNum = p_ask.AskBillNum; + _t.PoBillNum = p_ask.PoBillNum; + _t.ReceivedPort = p_ask.ReceivedPort; + _t.CreateUser = p_buyer; + _t.CreateTime = DateTime.Now; + _t.UpdateUser = p_buyer; + _t.UpdateTime = _t.CreateTime; + _t.ReceiveUser = p_ask.Buyer; + _t.ReceiveTime = p_ask.BeginTime; + _t.VendId = p_ask.VendId; + _t.IsDeleted = false;//操作员 + _t.CreateTime = DateTime.Now; + _t.CreateUser = p_buyer; + _t.Site = p_ask.Site; + _t.SubSite = p_ask.SubSite; + _t.Remark = p_ask.Remark; + _t.State = (int)AsnState.New; + _t.Remark = p_ask.Remark; + _t.GUID = Guid.NewGuid(); + _t.PlateNumber = p_PlateNumber; + _t.ShipUser = p_ask.ShipUser; + _t.ShipTime = p_ask.ShipTime; + _t.ReceiveTime = p_ask.ReceiveTime; + foreach (var itm in p_order_list) + { + var partgroup = db.TA_PART.Where(p => p.PartCode == itm.PartCode).FirstOrDefault(); + _t.Extend3 = partgroup.PartGroup; + } + db.TB_ASN.AddOrUpdate(p => p.AsnBillNum, _t); + List _list = new List(); + foreach (var itm in p_order_list) + { + TB_ASN_DETAIL _tDetail = new TB_ASN_DETAIL(); + _tDetail.PoBillNum = _t.PoBillNum; + _tDetail.AsnBillNum = _t.AsnBillNum; + _tDetail.PoLine = itm.PoLine; + _tDetail.PoUnit = itm.PoUnit; + _tDetail.Batch = itm.Batch; + if (itm.VendBatch == "55") + { + _tDetail.VendBatch = ""; + } + else + { + _tDetail.VendBatch = itm.VendBatch; + } + var subpart = db.TA_ASK_SUBPART.Where(p=>p.PartCode== itm.PartCode&&p.AskBillNum==itm.AskBillNum).ToList(); + string str1 = ""; + string str2 = ""; + foreach(var sub in subpart) + { + string str = sub.SubPartCode + "," + sub.BOMedtiton + "," + sub.VendBatch + "#"; + str2 = str2 + sub.VendBatch; + str1 = str1 + str; + } + _tDetail.VendBatch = str1; + _tDetail.UpdateUser = str2; + _tDetail.PackQty = itm.PackQty == 0 ? 1 : itm.PackQty; + _tDetail.PartCode = itm.PartCode; + _tDetail.State = (int)AsnState.New; + _tDetail.Qty = (decimal)itm.TempQty; + _tDetail.Price = itm.Price; + _tDetail.EndTime = itm.EndTime; + _tDetail.CreateTime = _t.CreateTime; + _tDetail.CreateUser = _t.CreateUser; + _tDetail.ProduceDate = itm.ProduceDate; + _tDetail.IsDeleted = false; + _tDetail.DockCode = itm.ReceivedPort; + _tDetail.LocUnit = itm.LocUnit; + _tDetail.UnConv = itm.UnConv; + _tDetail.State = _t.State; + _tDetail.UpdateInfo = itm.UpdateInfo; + _tDetail.ReceivedPort = itm.ReceivedPort; + _tDetail.GUID = Guid.NewGuid(); + _tDetail.SubSite = itm.SubSite; + _tDetail.Site = itm.Site; + _tDetail.Extend2 = itm.ReceivedQty.ToString(); + _tDetail.Remark = itm.ReceivedQty.ToString(); + _tDetail.UpdateInfo = itm.UpdateInfo; + var partgroup = db.TA_PART.Where(p => p.PartCode == itm.PartCode).FirstOrDefault(); + _tDetail.Extend3 = partgroup.PartGroup; + db.TB_ASN_DETAIL.Add(_tDetail); + var _order_detail = db.TB_ASK_DETAIL.Where(p => p.UID == itm.UID).FirstOrDefault(); + _order_detail.ShippedQty = (decimal)itm.ShippedQty; + db.TB_ASK_DETAIL.AddOrUpdate(p => p.UID, _order_detail); + foreach (var sub in subpart) + { + TS_UNI_API uni = new TS_UNI_API(); + uni.InterfaceType = "Receive"; + uni.TableName = "TS_UNI_API"; + uni.BillType = 0; + uni.SubBillType = 0; + uni.BillNum = _tDetail.AsnBillNum; + uni.PartCode = _tDetail.PartCode; + uni.Batch = _tDetail.Batch; + uni.Qty = _tDetail.Qty; + uni.State = 2; + uni.CreateOper=_t.CreateUser; + uni.CreateTime = DateTime.Now; + uni.PutTime= DateTime.Now; + uni.VendId = _t.VendId; + uni.PoUnit = _tDetail.PoUnit; + uni.LocUnit = _tDetail.PoUnit; + uni.ValidDate= DateTime.Now; + uni.ErpBillNum = _tDetail.PoBillNum; + uni.ErpLineNum = _tDetail.PoLine; + uni.VendBatch = sub.VendBatch; + uni.PackQty= _tDetail.Qty; + uni.Price = _tDetail.Price; + uni.UmConv = 1; + uni.Buyer = _t.ShipUser; + uni.BuyerPhone = ""; + uni.Site = _t.Site; + uni.Domain = _t.Site; + uni.ModType = sub.SubPartCode; + uni.Barcode = sub.BOMedtiton; + uni.Extend3 = _tDetail.PoLine.ToString(); + db.TS_UNI_API.Add(uni); + } + } + + var subpartcode = db.TA_ASK_SUBPART.Where(p => p.AskBillNum == _t.AskBillNum).ToList(); + foreach (var sub in subpartcode) + { + sub.VendBatch = ""; + db.TA_ASK_SUBPART.AddOrUpdate(sub); + } + int state = db.SaveChanges(); + if (state != -1) + { + var _askDetailList = db.V_TB_ASK_DETAIL.Where(p => p.AskBillNum == p_ask.AskBillNum && p.IsDeleted == false).ToList();//查询要货单明细 + var _lst = Get_CAN_SHIPQTY(_askDetailList);//算出可发数量 + if (_lst.Select(p => p.CanQty).Sum() <= 0)//可发数量为零时,修改状态 + { + var _ary = db.TB_ASK.Where(p => p.AskBillNum == p_ask.AskBillNum && p.IsDeleted == false).ToList(); + _ary.ForEach(p => p.State = (int)AskState.Ship); + if (_ary.Count() > 0) + { + db.TB_ASK.AddOrUpdate(_ary.ToArray()); + } + } + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Save_ASK_TO_ASN", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Save_ASK_TO_ASN", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Save_ASK_TO_ASN", ex.ToString()); + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Save_ASK_TO_ASN", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } public static ResultObject Save_ASK_TO_ASN(V_TB_ASK p_ask, List p_order_list, string p_PlateNumber , string p_buyer, string p_buyerPhone) { @@ -1207,6 +1852,7 @@ namespace CK.SCP.Controller { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { + var po = db.TB_PO.FirstOrDefault(p=>p.PoBillNum==p_ask.PoBillNum); TB_ASN _t = new TB_ASN(); _t.AsnBillNum = SCP_BILLCODE_CONTROLLER.MakeASNCode(); _t.AskBillNum = p_ask.AskBillNum; @@ -1232,7 +1878,12 @@ namespace CK.SCP.Controller _t.ShipUser = p_ask.ShipUser; _t.ShipTime = p_ask.ShipTime; _t.ReceiveTime = p_ask.ReceiveTime; - db.TB_ASN.AddOrUpdate(p => p.AsnBillNum, _t); + foreach (var itm in p_order_list) + { + var partgroup = db.TA_PART.Where(p => p.PartCode == itm.PartCode).FirstOrDefault(); + _t.Extend3 = partgroup.PartGroup; + } + db.TB_ASN.AddOrUpdate(p => p.AsnBillNum, _t); List _list = new List(); foreach (var itm in p_order_list) { @@ -1242,14 +1893,21 @@ namespace CK.SCP.Controller _tDetail.PoLine = itm.PoLine; _tDetail.PoUnit = itm.PoUnit; _tDetail.Batch = itm.Batch; - if (!string.IsNullOrEmpty(itm.VendBatch)) + if (itm.VendBatch=="55") + { + _tDetail.VendBatch = ""; + } + else { _tDetail.VendBatch = itm.VendBatch; } - else + + if (_t.PoBillNum.Substring(0, 5) == "CYD03"&&_t.Site=="W21") { - _tDetail.VendBatch = itm.Batch; + var podetail = db.TB_PO_DETAIL.FirstOrDefault(t=>t.PoBillNum==_t.PoBillNum&&t.PartCode==itm.PartCode&&t.PoLine==itm.PoLine); + _tDetail.VendBatch = podetail.SubSite + "," + podetail.Extend3 + "," + itm.VendBatch + "#"; } + _tDetail.UpdateUser= itm.VendBatch; _tDetail.PackQty = itm.PackQty == 0 ? 1 : itm.PackQty; _tDetail.PartCode = itm.PartCode; _tDetail.State = (int)AsnState.New; @@ -1267,12 +1925,82 @@ namespace CK.SCP.Controller _tDetail.UpdateInfo = itm.UpdateInfo; _tDetail.ReceivedPort = itm.ReceivedPort; _tDetail.GUID = Guid.NewGuid(); - _tDetail.SubSite = itm.SubSite; + _tDetail.SubSite = itm.SubSite; _tDetail.Site = itm.Site; + _tDetail.Extend2 = itm.ReceivedQty.ToString(); + _tDetail.Remark= itm.ReceivedQty.ToString(); + _tDetail.UpdateInfo = itm.UpdateInfo; + var partgroup = db.TA_PART.Where(p => p.PartCode == itm.PartCode).FirstOrDefault(); + var askdetail=db.TB_ASK_DETAIL.Where(p => p.PartCode == itm.PartCode&&p.AskBillNum==itm.AskBillNum).FirstOrDefault(); + _tDetail.Extend3 = partgroup.PartGroup; + _tDetail.Extend1 =po.VendId; + if (itm.Site == "U32") + { + var _applin = db.TA_Appliance.FirstOrDefault(p=>p.PartNumber==itm.SubSite&&p.VendID==p_ask.VendId); + if (_applin != null) + { + var _boxtype = db.TA_BOXTYPE.FirstOrDefault(p=>p.BoxType==_applin.BoxType&&p.Enabled==true); + if (_boxtype != null) + { + TB_ASN_PARTBOX PARTBOX = new TB_ASN_PARTBOX(); + PARTBOX.AsnBillNum = _t.AsnBillNum; + PARTBOX.PartCode = itm.PartCode; + PARTBOX.BoxType = _boxtype.BoxType; + PARTBOX.Box = Convert.ToInt32(_tDetail.Qty) / Convert.ToInt32(_tDetail.PackQty); + if(Convert.ToInt32(_tDetail.Qty) % Convert.ToInt32(_tDetail.PackQty) > 0) + { + PARTBOX.Box = PARTBOX.Box + 1; + } + PARTBOX.SumBox = PARTBOX.Box; + PARTBOX.PoBillNum = _t.PoBillNum; + PARTBOX.VendId = _t.VendId; + PARTBOX.ShipTime =DateTime.Parse(_t.ShipTime.ToString()).ToShortDateString(); + PARTBOX.Batch = _tDetail.Batch; + PARTBOX.PoLine = _tDetail.PoLine; + PARTBOX.PackQty = _tDetail.PackQty; + db.TB_ASN_PARTBOX.AddOrUpdate(PARTBOX); + } + } + if (!string.IsNullOrEmpty(askdetail.Extend2)) + { + var ModelList = db.TA_CarModel.ToList(); + foreach (var model in ModelList) + { + if(model.Model.Length<=askdetail.Extend2.Length) + { + + if (askdetail.Extend2.Contains(model.Model)) + { + _tDetail.Extend1 = "FT"; + break; + } + } + + _tDetail.Extend1 = "PT"; + } + //if (askdetail.Extend2.Contains("941B") || askdetail.Extend2.Contains("330B") || askdetail.Extend2.Contains("812B") || askdetail.Extend2.Contains("260B") || askdetail.Extend2.Contains("875B") || askdetail.Extend2.Contains("710B") || askdetail.Extend2.Contains("280B") || askdetail.Extend2.Contains("770B") || askdetail.Extend2.Contains("290D") || askdetail.Extend2.Contains("891B") || askdetail.Extend2.Contains("031D") || askdetail.Extend2.Contains("822B") || askdetail.Extend2.Contains("845B") || askdetail.Extend2.Contains("067D") || askdetail.Extend2.Contains("115D")) + //{ + // _tDetail.Extend1 = "FT"; + //} + //else + //{ + // _tDetail.Extend1 = "PT"; + //} + } + else + { + _tDetail.Extend1 = "PT"; + } + + + } db.TB_ASN_DETAIL.Add(_tDetail); var _order_detail = db.TB_ASK_DETAIL.Where(p => p.UID == itm.UID).FirstOrDefault(); _order_detail.ShippedQty = (decimal)itm.ShippedQty; + + db.TB_ASK_DETAIL.AddOrUpdate(p => p.UID, _order_detail); + } int state = db.SaveChanges(); if (state != -1) @@ -1358,7 +2086,7 @@ namespace CK.SCP.Controller { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - var _ls = p_list.Select(p => p.AskBillNum); + var _ls = p_list.Select(p => p.AskBillNum); StringBuilder _buffer = new StringBuilder(); _buffer.Append(" select distinct (C.AskBillNum)from V_TB_ASK_DETAIL C"); _buffer.Append(" left JOIN "); @@ -1382,6 +2110,39 @@ namespace CK.SCP.Controller } return p_list; } + + public static List GET_IS_COMPLETED_SEND1(List p_list,string lz) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + List lt = new List(); + var _ls = p_list.Select(p => p.AskBillNum); + StringBuilder _buffer = new StringBuilder(); + _buffer.Append(" select AskBillNum from V_TB_ASK_DETAIL "); + _buffer.Append($" WHERE Currency like '%{lz}%'"); + var _str = string.Format(_buffer.ToString(), string.Join("','", _ls.ToArray())); + var _list = db.Database.SqlQuery(_str).ToList(); + var ll= p_list.Where(p => _list.Contains(p.AskBillNum)).ToList(); + return ll; + } + + } + public static List GET_IS_COMPLETED_SEND2(List p_list, string lz) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + List lt = new List(); + var _ls = p_list.Select(p => p.AskBillNum); + StringBuilder _buffer = new StringBuilder(); + _buffer.Append(" select AskBillNum from V_TB_ASK_DETAIL "); + _buffer.Append($" WHERE SubSite='{lz}'"); + var _str = string.Format(_buffer.ToString(), string.Join("','", _ls.ToArray())); + var _list = db.Database.SqlQuery(_str).ToList(); + var ll = p_list.Where(p => _list.Contains(p.AskBillNum)).ToList(); + return ll; + } + + } public static decimal Get_ASN_DETAIL_CAN(V_TB_ASK_DETAIL p_asn_detail) { decimal _canqty = 0; @@ -1450,7 +2211,9 @@ namespace CK.SCP.Controller p_list.ForEach(itm => { - + var maxtime = db.TB_ASN_DETAIL.Where(p=>p.PartCode==itm.PartCode&&p.State>-1).Select(t=>t.ProduceDate).Max(); + + itm.MaxTime = maxtime.ToString(); groupList.ForEach(p => { if (p.PoBillNum == itm.PoBillNum && p.PoLine == itm.PoLine && p.PartCode == itm.PartCode) @@ -1465,6 +2228,7 @@ namespace CK.SCP.Controller itm.RejectQty = Math.Abs(p.BackSum);//寄售退货数 } }); + decimal a = itm.AskQty - (itm.ShippedQty == null ? 0 : (decimal)itm.ShippedQty) + itm.RejectQty - (itm.ReduceQty == null ? 0 : (decimal)itm.ReduceQty); itm.CanQty = a; itm.PackQty = (itm.PackQty == 0) ? 1 : itm.PackQty; @@ -1885,7 +2649,8 @@ namespace CK.SCP.Controller try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) - { + { + if (p_state == AskState.Close) { var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum)).ToList(); @@ -1899,13 +2664,16 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.MessageList.Add(p.AskBillNum + "存在未发货的发货单!"); + } else - { - p.State = (int)AskState.Close; - var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum).ToList(); + { + p.State = (int)AskState.Close; + var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum).ToList(); _list.ForEach(itm => itm.State = (int)AskState.Close); db.TB_ASK_DETAIL.AddOrUpdate(itm => itm.UID, _list.ToArray()); + + } } ); @@ -2018,6 +2786,15 @@ namespace CK.SCP.Controller if (p_state == AskState.Release) { var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum)).ToList(); + foreach (var mail in _ls) + { + TB_SUPPLIER_MAIL mall = new TB_SUPPLIER_MAIL(); + mall.State = 0; + mall.SupplicerCode = mail.VendId; + mall.MailBody = "有新的要货订单" + mail.AskBillNum; + mall.Email = mail.PoBillNum; + db.TB_SUPPLIER_MAIL.Add(mall); + } int count = _ls.Count(p => p.State == (int)AskState.New); if (count > 0) { diff --git a/Controller/SCP_ASN_CONTROLLER.cs b/Controller/SCP_ASN_CONTROLLER.cs index 47f2768..5d137f1 100644 --- a/Controller/SCP_ASN_CONTROLLER.cs +++ b/Controller/SCP_ASN_CONTROLLER.cs @@ -69,6 +69,7 @@ namespace CK.SCP.Controller } return dt; } + public static void Get_V_TB_ASN_List(V_TB_ASN p_entity, Action>> p_action,string p_language="CN") { ResultObject> _ret = new ResultObject>(); @@ -231,6 +232,287 @@ namespace CK.SCP.Controller throw e; } } + public static ResultObject Save_Asn_Vendbatch(List p_order_list) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + List _list = new List(); + var PartList = p_order_list.GroupBy(p => p.PartCode).ToList(); + + PartList.ForEach(p=> + { + var list = p.ToList(); + var batchList = list.Select(t => t.VendBatch).Distinct(); + if(list.Count()!= batchList.Count()) + { + _ret.MessageList.Add("同一物料号,不同子件物料号的原卷号不能相同"); + } + }); + foreach (var itm in p_order_list) + { + var detail = db.TA_ASK_SUBPART.FirstOrDefault(P => P.UID == itm.UID); + detail.VendBatch = itm.VendBatch; + db.TA_ASK_SUBPART.AddOrUpdate(p => p.UID, detail); + } + + if (_ret.MessageList.Count() == 0) + { + int state = db.SaveChanges(); + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + + + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Save_Asn_ProduceDate", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Save_Asn_ProduceDate", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Save_Asn_ProduceDate", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Save_Asn_ProduceDate", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + public static ResultObject Delete_asn(List asn) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + + foreach (var nn in asn) + { + var _ls = CheckExce2(db, nn); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + number++; + } + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + + var ASN = db.TB_ASN.Where(p => p.AsnBillNum == nn).FirstOrDefault(); + var detail = db.TB_ASN_DETAIL.Where(p => p.AsnBillNum == nn).ToArray(); + if (ASN != null) + { + ASN.State = -1; + ASN.IsDeleted = true; + db.TB_ASN.AddOrUpdate(ASN); + } + if (detail.Count() > 0) + { + foreach (var itm in detail) + { + itm.IsDeleted = true; + itm.State = -1; + + } + db.TB_ASN_DETAIL.AddOrUpdate(detail); + } + + } + } + } + + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Delete_asn", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Delete_asn", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Delete_asn", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Delete_asn", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + + private static List CheckExce2(ScpEntities db, string lt) + { + List ErrorList = new List(); + var _asn = db.TB_ASN.Count(p => p.AsnBillNum == lt&&p.State>0); + if (_asn > 0) + { + ErrorList.Add(string.Format("发货单【{0}】不是新建状态,不能作废", lt)); + } + return ErrorList; + } + + public static List SearchCxcount(string asn) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + var asndetail= db.TB_ASN_DETAIL.Where(p => p.AsnBillNum==asn&&p.Extend1=="FT").ToList(); + return asndetail; + + } + + } + public static List SearchCxcount1(string asn) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + var asndetail = db.TB_ASN_DETAIL.Where(p => p.AsnBillNum== asn && p.Extend1 == "PT").ToList(); + return asndetail; + + } + + } + public static List SearchPartBox(string asn) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + var PartBox = db.TB_ASN_PARTBOX.Where(p => p.AsnBillNum == asn && p.Box>0).ToList(); + return PartBox; + + } + + } + public static List SearchBarcode(string asn) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + var barcode = db.TS_BARCODE.Where(p => p.BillNum == asn).ToList(); + return barcode; + + } + + } public static void Get_TB_Pallet_List(V_TB_PALLETS p_entity, Action>> p_action) { ResultObject> _ret = new ResultObject>(); @@ -798,7 +1080,7 @@ namespace CK.SCP.Controller return _ret; } - public static DataSet ASN_REPORT(string p_AsnBillNum) + public static DataSet ASN_REPORT(string p_AsnBillNum,string CurrentUserPhone) { DataSet ds = new DataSet(); SCP_ASN_CONTROLLER.Get_V_TB_ASN_List(new V_TB_ASN { AsnBillNum = p_AsnBillNum }, (ret) => @@ -816,12 +1098,34 @@ namespace CK.SCP.Controller _print.SupplierNo = _asn.VendId; _print.SupplierName = _asn.VendName; _print.SupplierContacter = _asn.ShipUser; - _print.DueDeliveryDate = _asn.ReceiveTime.ToString(); + _print.DueDeliveryDate = _asn.EndTime.ToShortDateString(); _print.MaterialPlanner = _asn.Buyer; _print.CAAIPhone = ""; _print.CAAIFax = ""; _print.Site = _asn.Site; _print.Total = "0"; + _print.CurrentUserPhone = CurrentUserPhone; + if (_asn.Site == "U32") + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + var Bb = db.TA_Receiving_Information.Count(t => t.Shift == "白班"); + if (Bb > 0) + { + var Bb1 = db.TA_Receiving_Information.FirstOrDefault(t => t.Shift == "白班"); + _print.SupplierContacter = Bb1.Name + ":" + Bb1.Phone; + } + + var Yb = db.TA_Receiving_Information.Count(t => t.Shift == "夜班"); + if (Bb > 0) + { + var Yb1 = db.TA_Receiving_Information.FirstOrDefault(t => t.Shift == "夜班"); + _print.FileNo = Yb1.Name + ":" + Yb1.Phone; + } + _print.CAAIFax = _asn.ShipUser; + } + } + using (AppBoxContext _appdb = EntitiesFactory.CreateAppBoxInstance()) { StringBuilder _buffer = new StringBuilder(); @@ -859,13 +1163,23 @@ namespace CK.SCP.Controller _detail.Boxes = (Math.Truncate((p.Qty / p.PackQty)) + (((p.Qty % p.PackQty) > 0) ? 1 : 0)).ToString(); _detail.DeliverQty = p.Qty.ToString(); _detail.ReceiveQty = p.Qty.ToString(); - _detail.PoNo = p.PoBillNum+"."+p.AskBillNum; + //_detail.PoNo = p.PoBillNum + "." + p.AskBillNum; + //if (p.Site == "U32") + //{ + _detail.PoNo = p.PoBillNum; + //} + _detail.LineNO = p.PoLine.ToString(); _detail.Memo = p.Remark; _detail.Batch = p.Batch; _detail.VendBatch = p.VendBatch; - _detail.DockCode = p.DockCode; - _detail.ProjectId = _lst.Where(itm => itm.PartCode == p.PartCode).FirstOrDefault().ProjectId; + _detail.DockCode = p.Extend2; + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + var Poqty = db.TB_PO_DETAIL.FirstOrDefault(t=>t.PartCode== p.PartCode&&t.PoBillNum==p.PoBillNum&&t.PoLine==p.PoLine); + _detail.PoQty = Poqty.PlanQty.ToString(); + } + // _detail.ProjectId = _lst.Where(itm => itm.PartCode == p.PartCode).FirstOrDefault().ProjectId; _lsDetail.Add(_detail); }); @@ -902,7 +1216,8 @@ namespace CK.SCP.Controller _print.CAAIPhone = ""; _print.CAAIFax = ""; _print.Total = "0"; - using (AppBoxContext _appdb = EntitiesFactory.CreateAppBoxInstance()) + + using (AppBoxContext _appdb = EntitiesFactory.CreateAppBoxInstance()) { StringBuilder _buffer = new StringBuilder(); var _ls = _appdb.Users.Where(p => p.Roles.Select(itm => itm.Name).Contains("物流人员")).ToList(); @@ -1492,25 +1807,30 @@ namespace CK.SCP.Controller { string _asnBillNum = p_list[0].AsnBillNum; var _asn = db.TB_ASN.Where(p => p.IsDeleted == false && p.AsnBillNum == _asnBillNum).FirstOrDefault(); + var _asn1 = db.TB_ASN_DETAIL.Where(p => p.IsDeleted == false && p.AsnBillNum == _asnBillNum).FirstOrDefault(); + List _asnList = new List(); p_list.ForEach(p => { decimal _qty = 0; decimal _packQty = 0; + var partcount = p_list.Where(t=>t.PartCode==p.PartCode); + if (decimal.TryParse(p.Qty.ToString(), out _qty) && decimal.TryParse(p.PackQty.ToString(), out _packQty)) { decimal _n = _qty / _packQty; var _count=int.Parse( Math.Truncate(_n).ToString()); if (_qty / _packQty > 0) { + for (int i = 0; i < _count; i++) { V_TB_ASN_DETAIL _asndetail = new V_TB_ASN_DETAIL(); _asndetail.PoBillNum = p.PoBillNum; _asndetail.Batch = p.Batch; _asndetail.PartCode = p.PartCode; - _asndetail.ProduceDate = p.ProduceDate; - _asndetail.Qty = _packQty; + _asndetail.ProduceDate = p.ProduceDate; + _asndetail.Qty = _packQty; _asndetail.AsnBillNum = p.AsnBillNum; _asndetail.PoLine = p.PoLine; _asndetail.VendId = p.VendId; @@ -1522,6 +1842,7 @@ namespace CK.SCP.Controller _asndetail.PoUnit = p.PoUnit; _asndetail.Site = p.Site; _asndetail.UpdateInfo = p.UpdateInfo; + _asndetail.UpdateUser = p.UpdateUser; _asnList.Add(_asndetail); } if (_qty % _packQty > 0) @@ -1543,6 +1864,8 @@ namespace CK.SCP.Controller _asndetail.PoUnit = p.PoUnit; _asndetail.UpdateInfo = p.UpdateInfo; _asndetail.Site = p.Site; + _asndetail.UpdateInfo = p.UpdateInfo; + _asndetail.UpdateUser = p.UpdateUser; _asnList.Add(_asndetail); } } @@ -1567,17 +1890,46 @@ namespace CK.SCP.Controller _asndetail.PoUnit = p.PoUnit; _asndetail.Site = p.Site; _asndetail.UpdateInfo = p.UpdateInfo; + _asndetail.UpdateUser = p.UpdateUser; _asnList.Add(_asndetail); } } } }); - foreach (var itm in _asnList) + + if (_asnList.Count>=1000&& _asnList[0].Site== "U32")//本特勒大于1000时采用批量生成方式 { - var _bar = SCP_BARCODE_CONTROLLER.CreateBarcode(itm); - _ls.Add(_bar); + var groups = _asnList.GroupBy(r => new { r.PartCode, r.Batch, r.Site, r.PoBillNum, r.AskBillNum }).ToList(); + foreach (var group in groups) + { + var list = _asnList.Where(r => r.PartCode == group.Key.PartCode && r.Batch == group.Key.Batch && r.Site == group.Key.Site && r.PoBillNum == group.Key.PoBillNum && r.AskBillNum == group.Key.AskBillNum).ToList(); + var ret = SCP_BARCODE_CONTROLLER.CreateBatchBarcodeList(list); + if (ret.State == ReturnStatus.Succeed) + { + _ls.AddRange(ret.Result); + + } + else + { + _ret.MessageList.Add(ret.Message); + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + return _ret; + } + } + db.TS_BARCODE.BulkInsert(_ls.ToArray()); } - db.TS_BARCODE.AddOrUpdate(p => new { p.BarCode, p.BillNum }, _ls.ToArray()); + else + { + + foreach (var itm in _asnList) + { + var _bar = SCP_BARCODE_CONTROLLER.CreateBarcode(itm); + _ls.Add(_bar); + } + + db.TS_BARCODE.AddOrUpdate(p => new { p.BarCode, p.BillNum }, _ls.ToArray()); + } } else { @@ -1897,6 +2249,150 @@ namespace CK.SCP.Controller } return _ret; } + public static ResultObject Save_TB_PALLET_BTL(List p_list) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int _sumbox = p_list.Sum(p => p.Qty); + SqlParameter[] prams = new SqlParameter[1]; + prams[0] = new SqlParameter("@a", 105); + string lastNumber = db.Database.SqlQuery("exec dbo.P_GetBillNum @a", prams).SingleOrDefault(); + if (lastNumber.Length != 8 || !lastNumber.Contains('P')) + { + _ret.MessageList.Add("托盘生成失败!"); + } + string str = ""; + decimal _qy = 0; + foreach (var li in p_list) + { + + var ts = db.TS_BARCODE.OrderBy(T => T.UID).Where(T => string.IsNullOrEmpty(T.PalletNum) && T.BillNum == li.AsnBillNum && T.PartCode == li.PartCode).ToList().Take(li.Qty); + var tss = ts.ToList(); + decimal _qty = tss.Sum(p => p.Qty); + string str1 = li.PartCode + "," + li.Batch+","+ _qty+","+li.PoLine+"#"; + tss.ForEach(itm => itm.PalletNum = lastNumber); + db.TS_BARCODE.AddOrUpdate(itm => itm.UID, tss.ToArray()); + str = str + str1; + _qy = _qy + _qty; + li.Box = li.Box - li.Qty; + li.Qty1 = 0; + db.TB_ASN_PARTBOX.AddOrUpdate(li); + } + var _ls = p_list.First(); + TB_PALLETS_BTL pallet = new TB_PALLETS_BTL(); + pallet.AsnBillNum = _ls.AsnBillNum; + + pallet.PalletNum = lastNumber; + pallet.PoBillNum = _ls.PoBillNum; + pallet.VendId = _ls.VendId; + var vend = db.TA_VENDER.FirstOrDefault(p => p.VendId == _ls.VendId); + pallet.VendName = vend.VendName; + pallet.ShipTime = _ls.ShipTime; + + pallet.SumBox = _sumbox; + pallet.PalletCode = lastNumber+";"+ _ls.AsnBillNum+";" + _ls.PoBillNum+";" + _ls.VendId+";"+ str; + pallet.SumQty = _qy; + if (p_list.Count() > 0) + { + int _count = 6 - p_list.Count(); + if (_count > 0) + { + for (int a = 1; a <= _count; a++) + { + TB_ASN_PARTBOX _partbox = new TB_ASN_PARTBOX(); + + p_list.Add(_partbox); + } + } + pallet.PackQty = p_list.First().PackQty.ToString(); + pallet.PartCode = p_list.First().PartCode.ToString(); + pallet.Box = p_list.First().Qty.ToString(); + pallet.PackQty1 = p_list[p_list.Count - 5].PackQty==0?"": p_list[p_list.Count - 5].PackQty.ToString(); + pallet.PartCode1 = string.IsNullOrEmpty(p_list[p_list.Count - 5].PartCode)?"": p_list[p_list.Count - 5].PartCode; + pallet.Box1 = p_list[p_list.Count - 5].Qty==0 ? "": p_list[p_list.Count - 5].Qty.ToString(); + pallet.PackQty2 = p_list[p_list.Count - 4].PackQty==0 ?"": p_list[p_list.Count - 4].PackQty.ToString(); + pallet.PartCode2 =string.IsNullOrEmpty(p_list[p_list.Count - 4].PartCode)?"": p_list[p_list.Count - 4].PartCode; + pallet.Box2 = p_list[p_list.Count - 4].Qty==0?"" : p_list[p_list.Count - 4].Qty.ToString(); + pallet.PackQty3 = p_list[p_list.Count - 3].PackQty==0 ? "": p_list[p_list.Count - 3].PackQty.ToString(); + pallet.PartCode3 = string.IsNullOrEmpty(p_list[p_list.Count - 3].PartCode)?"": p_list[p_list.Count - 3].PartCode; + pallet.Box3 = p_list[p_list.Count - 3].Qty==0?"" : p_list[p_list.Count - 3].Qty.ToString(); + pallet.PackQty4 = p_list[p_list.Count - 2].PackQty==0 ? "": p_list[p_list.Count - 2].PackQty.ToString(); + pallet.PartCode4 = string.IsNullOrEmpty(p_list[p_list.Count - 2].PartCode)?"": p_list[p_list.Count - 2].PartCode; + pallet.Box4 = p_list[p_list.Count - 2].Qty==0 ? "": p_list[p_list.Count - 2].Qty.ToString(); + pallet.PackQty5 = p_list.Last().PackQty == 0 ? "" : p_list.Last().PackQty.ToString(); + pallet.PartCode5 =string.IsNullOrEmpty(p_list.Last().PartCode) ? "" : p_list.Last().PartCode; + pallet.Box5 = p_list.Last().Qty==0 ?"": p_list.Last().Qty.ToString(); + pallet.IsDeleted = false; + } + db.TB_PALLETS_BTL.AddOrUpdate(pallet); + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + + } + + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Save_TB_PALLET_BTL", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Save_TB_PALLET_BTL", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Save_TB_PALLET_BTL", ex.ToString()); + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Save_TB_PALLET_BTL", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } public static ResultObject Save_TB_PALLET_JZJH(List p_list) { @@ -2329,7 +2825,7 @@ namespace CK.SCP.Controller { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - var _list = db.TS_UNI_API.Where(p => p.BillNum == p_asn.AsnBillNum).ToList(); + var _list = db.TS_UNI_API.Where(p => p.BillNum == p_asn.AsnBillNum&&p.State==1).ToList(); if (_list.Count > 0) { _ret.State = ReturnStatus.Failed; @@ -2400,15 +2896,128 @@ namespace CK.SCP.Controller } return _ret; } - public static ResultObject Save_TB_ASN_DETAIL(V_TB_ASN p_asn, List p_entitys) + + public static ResultObject Get_TB_ASN_BACH(V_TB_ASN p_asn) { ResultObject _ret = new ResultObject(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { + int i = 0; + List asn1 =new List (); + var asn = db.V_TB_ASN_DETAIL.Count(p=>p.VendId== p_asn.VendId&& p.State==0&&p.AsnBillNum!=p_asn.AsnBillNum); + if (asn > 0) + { + var _list = db.V_TB_ASN_DETAIL.Where(p => p.AsnBillNum == p_asn.AsnBillNum&& p.VendId == p_asn.VendId).ToList(); + foreach(var part in _list) + { + var pa = db.V_TB_ASN_DETAIL.Count(p => p.PartCode == part.PartCode&&p.State==0&&p.ProduceDate 0) + { + var pa1 = db.V_TB_ASN_DETAIL.Where(p => p.PartCode == part.PartCode && p.State == 0 && p.ProduceDate < part.ProduceDate && p.VendId == p_asn.VendId).ToList(); + foreach(var p in pa1) + { + if (!asn1.Contains(p.AsnBillNum)) + { + asn1.Add(p.AsnBillNum); + } + + } + i++; + } + + } + + } + string STR = ""; + if (asn1.Count() > 0) + { + STR = String.Join(";", asn1); + } + + if (i > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.Message = STR; + + + } + else + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Get_TS_UNI_API", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Get_TS_UNI_API", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Get_TS_UNI_API", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Get_TS_UNI_API", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + public static ResultObject Save_TB_ASN_DETAIL(V_TB_ASN p_asn, List p_entitys) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { DateTime now = DateTime.Now; + List consumlist = new List(); List _ls = new List(); var _asn =db.TB_ASN.Where(p => p.IsDeleted == false && p.AsnBillNum == p_asn.AsnBillNum).ToList(); if (_asn != null && _asn.Count>0) @@ -2420,7 +3029,83 @@ namespace CK.SCP.Controller db.TB_ASN.AddOrUpdate(p => p.UID, _asn.ToArray()); var ask = db.TB_ASK.Where(p => p.IsDeleted == false && p.AskBillNum == p_asn.AskBillNum).ToList(); ask.ForEach(p => p.State = (int)AskState.Ship); - db.TB_ASK.AddOrUpdate(p => p.UID, ask.ToArray()); + db.TB_ASK.AddOrUpdate(p => p.UID, ask.ToArray()); + var Asn = p_entitys.First(); + var po = db.TB_PO.FirstOrDefault(p=>p.PoBillNum==Asn.PoBillNum); + if (po.UpdateInfo == "Y"&&po.Site=="W21") + { + p_entitys.ForEach(p => + { + var _maxpolist = db.TB_MAXPO_DETAIL.Where(t => t.PartCode == p.PartCode && t.VendId == p.Extend1&&t.AsnQty>0).ToList().OrderBy(t=>t.ContractMonth); + decimal sum = 0; + if (_maxpolist.Count() > 0) + { + sum = _maxpolist.Sum(t => t.AsnQty); + } + decimal Qtyy = p.Qty; + + if(sum< Qtyy) + { + _ret.MessageList.Add(string.Format("确认发货失败,零件号{0}大订单剩余数量不足,请联系业务人员维护", p.PartCode)); + } + else + { + foreach (var _maxpo in _maxpolist) + { + if (_maxpo.AsnQty > Qtyy) + { + _maxpo.AsnQty = _maxpo.AsnQty - Qtyy; + TB_MAXPO_CONSUME consumne = new TB_MAXPO_CONSUME(); + consumne.PoBillNum = _maxpo.PoBillNum; + consumne.BillNum = p.AsnBillNum; + consumne.PoQty = Qtyy; + consumne.VendId = _maxpo.VendId; + consumne.PartCode = _maxpo.PartCode; + consumne.ShipTime = _maxpo.CreateTime; + consumlist.Add(consumne); + + db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo); + + break; + } + else if (_maxpo.AsnQty == Qtyy) + { + TB_MAXPO_CONSUME consumne = new TB_MAXPO_CONSUME(); + consumne.PoBillNum = _maxpo.PoBillNum; + consumne.BillNum = p.AsnBillNum; + consumne.PoQty = Qtyy; + consumne.VendId = _maxpo.VendId; + consumne.PartCode = _maxpo.PartCode; + consumne.ShipTime = _maxpo.CreateTime; + consumlist.Add(consumne); + _maxpo.AsnQty = 0; + + db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo); + + break; + } + else if (_maxpo.AsnQty < Qtyy) + { + + TB_MAXPO_CONSUME consumne = new TB_MAXPO_CONSUME(); + consumne.PoBillNum = _maxpo.PoBillNum; + consumne.BillNum = p.AsnBillNum; + consumne.PoQty = _maxpo.AsnQty; + consumne.VendId = _maxpo.VendId; + consumne.PartCode = _maxpo.PartCode; + consumne.ShipTime = _maxpo.CreateTime; + Qtyy = Qtyy - _maxpo.AsnQty; + consumlist.Add(consumne); + _maxpo.AsnQty = 0; + db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo); + } + + } + } + + + }); + } p_entitys.ForEach(itm => { @@ -2432,8 +3117,8 @@ namespace CK.SCP.Controller && p.PoBillNum == p_asn.PoBillNum && p.PoLine == itm.PoLine && p.IsDeleted == false).Select(p => p.Qty).Sum(); var _rejct = db.TB_ARRIVE_DETAIL.Where(p => p.Remark == p_asn.AskBillNum && p.PartCode == itm.PartCode && p.PoBillNum == p_asn.PoBillNum && p.PoLine == itm.PoLine && p.IsDeleted == false&&p.BillType==3).Select(p => p.Qty).ToList().Sum(); - if (_currSum - _curr + itm.Qty- Math.Abs(_rejct) <= _sum) - { + //if (_currSum - _curr + itm.Qty- Math.Abs(_rejct) <= _sum) + //{ TB_ASN_DETAIL _detail = new TB_ASN_DETAIL(); _detail.UID = itm.UID; _detail.UnConv = itm.UnConv; @@ -2455,20 +3140,32 @@ namespace CK.SCP.Controller _detail.PoUnit = itm.PoUnit; _detail.LocUnit = itm.LocUnit; _detail.IsDeleted = itm.IsDeleted; - _detail.State = (int)AsnState.Ship; - + _detail.State = (int)AsnState.Ship; _detail.GUID = itm.Guid; + _detail.UpdateInfo = itm.UpdateInfo; + _detail.UpdateUser = itm.UpdateUser; + _detail.Extend1 = itm.Extend1; _ls.Add(_detail); - - - TS_UNI_API api = UniApiController.CreateBy(p_asn, itm, UniApiType.Receive); - api.State = 1; - db.TS_UNI_API.AddOrUpdate(api);//同步更新中间表 + + var UNI = db.TS_UNI_API.Count(p=>p.BillNum==itm.AsnBillNum);//多组件订单更新中间表 + if (UNI > 0) + { + var UN = db.TS_UNI_API.Where(p => p.BillNum == itm.AsnBillNum).ToList(); + foreach(var u in UN) + { + u.PutTime = DateTime.Now; + u.State = 1; + db.TS_UNI_API.AddOrUpdate(u); + } } else { - _ret.MessageList.Add(string.Format("行号{0}零件名称:{1}数量合计已大于要货单{2}数量", itm.PoLine, itm.PartDesc1, itm.AskBillNum)); + TS_UNI_API api = UniApiController.CreateBy(p_asn, itm, UniApiType.Receive); + api.State = 1; + db.TS_UNI_API.AddOrUpdate(api);//同步更新中间表 } + + } ); var _asnBillNum = _asn[0].AsnBillNum; @@ -2487,7 +3184,10 @@ namespace CK.SCP.Controller else { db.TB_ASN_DETAIL.AddOrUpdate(p => p.UID, _ls.ToArray()); - + if (consumlist.Count() > 0) + { + db.TB_MAXPO_CONSUME.AddRange(consumlist); + } if (db.SaveChanges() != -1) { _ret.State = ReturnStatus.Succeed; @@ -3340,5 +4040,6 @@ namespace CK.SCP.Controller } return ErrorList; } - } + } + } diff --git a/Controller/SCP_BARCODE_CONTROLLER.cs b/Controller/SCP_BARCODE_CONTROLLER.cs index 41741c6..3829d0a 100644 --- a/Controller/SCP_BARCODE_CONTROLLER.cs +++ b/Controller/SCP_BARCODE_CONTROLLER.cs @@ -96,8 +96,217 @@ namespace CK.SCP.Controller } return _ret; } + public static ResultObject DELETE_TB_PALLETS_BTL(List _ls) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + foreach(var ls in _ls) + { + List list = new List(); + var _pallete = db.TB_PALLETS_BTL.FirstOrDefault(p=>p.UID.ToString()==ls); + if (!string.IsNullOrEmpty(_pallete.PartCode)) + { + var _asnpart = db.TB_ASN_PARTBOX.FirstOrDefault(p=>p.PartCode== _pallete.PartCode&&p.AsnBillNum== _pallete.AsnBillNum); + _asnpart.Box = _asnpart.Box +int.Parse(_pallete.Box); + list.Add(_asnpart); + } + if (!string.IsNullOrEmpty(_pallete.PartCode1)) + { + var _asnpart = db.TB_ASN_PARTBOX.FirstOrDefault(p => p.PartCode == _pallete.PartCode1 && p.AsnBillNum == _pallete.AsnBillNum); + _asnpart.Box = _asnpart.Box + int.Parse(_pallete.Box1); + list.Add(_asnpart); + } + if (!string.IsNullOrEmpty(_pallete.PartCode2)) + { + var _asnpart = db.TB_ASN_PARTBOX.FirstOrDefault(p => p.PartCode == _pallete.PartCode2 && p.AsnBillNum == _pallete.AsnBillNum); + _asnpart.Box = _asnpart.Box + int.Parse(_pallete.Box2); + list.Add(_asnpart); + } + if (!string.IsNullOrEmpty(_pallete.PartCode3)) + { + var _asnpart = db.TB_ASN_PARTBOX.FirstOrDefault(p => p.PartCode == _pallete.PartCode3 && p.AsnBillNum == _pallete.AsnBillNum); + _asnpart.Box = _asnpart.Box + int.Parse(_pallete.Box3); + list.Add(_asnpart); + } + if (!string.IsNullOrEmpty(_pallete.PartCode4)) + { + var _asnpart = db.TB_ASN_PARTBOX.FirstOrDefault(p => p.PartCode == _pallete.PartCode4 && p.AsnBillNum == _pallete.AsnBillNum); + _asnpart.Box = _asnpart.Box + int.Parse(_pallete.Box4); + list.Add(_asnpart); + } + if (!string.IsNullOrEmpty(_pallete.PartCode5)) + { + var _asnpart = db.TB_ASN_PARTBOX.FirstOrDefault(p => p.PartCode == _pallete.PartCode5 && p.AsnBillNum == _pallete.AsnBillNum); + _asnpart.Box = _asnpart.Box + int.Parse(_pallete.Box5); + list.Add(_asnpart); + } + _pallete.IsDeleted = true; + var _ts = db.TS_BARCODE.Where(p => p.PalletNum == _pallete.PalletNum).ToList(); + _ts.ForEach(p=>{ + p.PalletNum = ""; + }); + db.TS_BARCODE.AddOrUpdate(_ts.ToArray()); + db.TB_ASN_PARTBOX.AddOrUpdate(list.ToArray()); + db.TB_PALLETS_BTL.AddOrUpdate(_pallete); + } + + if (_ret.MessageList.Count > 0) + { + _ret.State = ReturnStatus.Failed; + + } + else + { + if (db.SaveChanges() != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//ʵ֤쳣 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("{0}ֶΣ{1}Ϣ{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "ֶ֤ʧ" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//ͻ쳣 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Change_Vend_state", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + public static void Get_TS_PALLETS_BTL_List(TB_PALLETS_BTL p_entity, Action>> p_action) + { + ResultObject> _ret = new ResultObject>(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + IQueryable q = db.TB_PALLETS_BTL; + + if (!string.IsNullOrEmpty(p_entity.PalletNum)) + { + q = q.Where(p => p.PalletNum == p_entity.PalletNum); + } + if (!string.IsNullOrEmpty(p_entity.AsnBillNum)) + { + q = q.Where(p => p.AsnBillNum == p_entity.AsnBillNum); + } + q = q.Where(p => p.IsDeleted == p_entity.IsDeleted); + _ret.State = ReturnStatus.Succeed; + _ret.Result = q; + p_action(_ret); + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//ʵ֤쳣 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("{0}ֶΣ{1}Ϣ{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "Get_TS_BARCODE_List", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "ֶ֤ʧ" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//ͻ쳣 + { + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "Get_TS_BARCODE_List", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "Get_TS_BARCODE_List", ex.ToString()); + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "Get_TS_BARCODE_List", e.Message); + throw e; + } + } + public static ResultObject> Get_TB_PRINT_COUNT_List(TB_PRINT_COUNT p_entity) { ResultObject> _ret = new ResultObject>(); @@ -483,7 +692,7 @@ namespace CK.SCP.Controller _ret.MessageList.Add("Ϣδҵñ!"); } var vendPart= db.TA_VEND_PART.FirstOrDefault(p => p.PartCode == p_entity.PartCode && p.VendId == p_entity.VendId); - var ret = GetSmallBarcodeRule(p_entity.PartCode, p_entity.Batch, cnt); + var ret = GetSmallBarcodeRule(p_entity.PartCode, p_entity.Batch, cnt); var _part = db.TA_PART.FirstOrDefault(p => p.PartCode == p_entity.PartCode && p.Site == p_entity.Site); if (ret.State == ReturnStatus.Succeed) { @@ -521,6 +730,7 @@ namespace CK.SCP.Controller Remark = p_entity.Remark, SmallPackQty = p_entity.PackQty, Site = p_entity.Site + }; if (_part == null) { @@ -670,14 +880,222 @@ namespace CK.SCP.Controller } return _ret; } + /// + /// 루ͬţʱأ + /// + /// + /// + public static ResultObject> CreateBatchBarcodeList(List details) + { + + ResultObject> _ret = new ResultObject>(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + var checkitem = details.Select(r => new { r.PartCode, r.Batch }).Distinct(); + + if (checkitem.Count() > 1) + { + _ret.State = ReturnStatus.Failed; + _ret.Message = ",ڶβܵӡ,ϵԱ!"; + return _ret; + } + var list = new List(); + var ret = GetBarcodeRule(details[0].PartCode, details[0].Batch, details.Count); + if (ret.State == ReturnStatus.Succeed) + { + var barcodeRule = ret.Result; + var partcode = details[0].PartCode; + var vendId = details[0].VendId; + var asnBillNum = details[0].AsnBillNum; + var site= details[0].Site; + var poBillNum= details[0].PoBillNum; + var part = db.TA_PART.FirstOrDefault(p => p.PartCode == partcode); + if (part == null) + { + _ret.MessageList.Add("Ϣδҵñ!"); + //throw e; + } + var vendPart = db.TA_VEND_PART.FirstOrDefault(p => p.PartCode == partcode && p.VendId == vendId && p.Site == site); + var _part1 = db.TB_ASN_DETAIL.FirstOrDefault(p => p.PartCode == partcode && p.AsnBillNum == asnBillNum && p.PoBillNum == poBillNum); + string coustomer = ""; + if (_part1.Extend1 == "FT") + { + var _coustomer = db.TA_SubPart.FirstOrDefault(p => p.PartCode == partcode); + if (_coustomer != null) + { + coustomer = _coustomer.SubPart.Replace("-", ""); + } + } + else + { + coustomer = part.PartCode.Replace("-", ""); + } + var _part = db.TA_PART.FirstOrDefault(p => p.PartCode == partcode && p.Site == site); + var _AsnBillNum = db.TB_ASN.FirstOrDefault(p => p.AsnBillNum == asnBillNum); + var _Ask = db.TB_ASK_DETAIL.FirstOrDefault(p => p.PartCode == part.PartCode); + var _Askde = db.TB_ASK_DETAIL.FirstOrDefault(p => p.PartCode == part.PartCode && p.AskBillNum == _AsnBillNum.AskBillNum); + string str; + string str1; + string str2; + string str3; + string str4; + string str5; + string str6; + str2 = _AsnBillNum.ReceiveTime.ToString(); + var _PinFan = db.TA_PinFan.FirstOrDefault(p => p.PartCode == partcode); + str6 = _PinFan == null ? "" : _PinFan.Barcodnt; + var _Appliance = db.TA_Appliance.FirstOrDefault(p => p.VendID == _AsnBillNum.VendId && p.PartNumber == _Askde.SubSite); + str = _Appliance == null ? "" : _Appliance.Model;// + str1 = _Appliance == null ? "" : _Appliance.ReciteNumber;// + str3 = _Appliance == null ? "" : _Appliance.SufanLand;// + str4 = _Appliance == null ? "" : _Appliance.BoxType;// + str5 = _Appliance == null ? "" : _Appliance.PostEngineering;//󹤳 + for (int i = 0; i < details.Count; i++) + { + var barcodenum = barcodeRule.LastNumber - details.Count+i+1; + V_TB_ASN_DETAIL p_entity = details[i]; + var createTime = ScpCache.GetServerTime(); + var code = GetLastBarCode(p_entity.PartCode, p_entity.Batch, barcodenum); + if (part.PartDesc1.ToUpper().Contains("") || part.PartDesc1.ToUpper().Contains("LEFT") || + part.PartDesc2.ToUpper().Contains("") || part.PartDesc1.ToUpper().Contains("LEFT")) + p_entity.Remark = "L" + p_entity.Remark; + if (part.PartDesc1.ToUpper().Contains("") || part.PartDesc1.ToUpper().Contains("LEFT") || + part.PartDesc2.ToUpper().Contains("") || part.PartDesc1.ToUpper().Contains("LEFT")) + p_entity.Remark = "R" + p_entity.Remark; + string _check = (_part.Ischeck == false || _part.Ischeck == null) ? "" : "()"; + var barcode = new TS_BARCODE + { + BarCode = code, + PartCode = part.PartCode, + Extend12 = coustomer, + VendPartCode = vendPart?.VendPartCode, + Batch = p_entity.Batch, + ProduceDate = (DateTime)p_entity.ProduceDate, + SerialNum = barcodenum.ToString(ScpCache.Config.кŸʽ), + PoUnit = p_entity.PoUnit, + Qty = p_entity.Qty, + BarCodeType = 1, + BillNum = p_entity.AsnBillNum, + PoBillNum = p_entity.PoBillNum, + PoBillLine = p_entity.PoLine, + VendId = p_entity.VendId, + VendBatch = p_entity.VendBatch, + Extend1 = _part.PartDesc2, + Extend2 = _part.ReceivePort,//ë + Extend3 = _part.PalletSize,// + CreateTime = p_entity.CreateTime, + CreateOper = p_entity.CreateUser, + State = 0, + Remark = p_entity.UpdateInfo, + PackQty = p_entity.PackQty, + Site = p_entity.Site, + IsScanned = false, + Extend4 = _Askde.SubSite,//ŲϺ + Extend5 = str,// + Extend7 = part.PartDesc1, + Extend6 = DateTime.Parse(str2), + Extend8 = str1,// + Extend9 = str3,// + Extend10 = str4,// + Extend11 = str5,//󹤳 + Extend13 = (_AsnBillNum.ShipTime).Value, + Extend14 = _part1.Extend2, + Extend15 = str6,//Ʒ + Extend16 = _part1.Extend1, + ProjectId = p_entity.UpdateUser + + }; + + if (_part == null) + { + _ret.MessageList.Add("δҵ,ŻصϢ," + p_entity.PartCode); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "CreateBarcodeList", "δҵ,ŻصϢ," + p_entity.PartCode); + } + else + { + var _isCheck = (_part.Ischeck == null) ? false : _part.Ischeck; + barcode.Qlevel = _part.Qlevel; + barcode.QMark = (_isCheck == true) ? "" : "ȫ"; + //barcode.ProjectId = _part.ProjectId; + } + var fullCode = GetFullCode(barcode); + barcode.FullBarCode = fullCode; + list.Add(barcode); + } + _ret.State = ReturnStatus.Succeed; + _ret.Result = list; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Message = "!"; + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//ʵ֤쳣 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("{0}ֶΣ{1}Ϣ{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "CreateBatchBarcodeList", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "ֶ֤ʧ" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//ͻ쳣 + { + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "CreateBatchBarcodeList", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "CreateBatchBarcodeList", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "CreateBarcodeList", e.Message); + throw e; + } + return _ret; + } public static ResultObject> CreateBarcodeList(V_TB_ASN_DETAIL p_entity, int cnt = 1) { ResultObject> _ret = new ResultObject>(); try { - + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { var list = new List(); @@ -687,12 +1105,44 @@ namespace CK.SCP.Controller _ret.MessageList.Add("Ϣδҵñ!"); //throw e; } - var vendPart - = db.TA_VEND_PART.FirstOrDefault(p => p.PartCode == p_entity.PartCode && p.VendId == p_entity.VendId && p.Site==p_entity.Site); + var vendPart = db.TA_VEND_PART.FirstOrDefault(p => p.PartCode == p_entity.PartCode && p.VendId == p_entity.VendId && p.Site == p_entity.Site); var ret = GetBarcodeRule(p_entity.PartCode, p_entity.Batch, cnt); - + var _part1 = db.TB_ASN_DETAIL.FirstOrDefault(p => p.PartCode == p_entity.PartCode && p.AsnBillNum == p_entity.AsnBillNum && p.PoBillNum == p_entity.PoBillNum); + string coustomer = ""; + if (_part1.Extend1 == "FT") + { + var _coustomer = db.TA_SubPart.FirstOrDefault(p => p.PartCode == p_entity.PartCode); + if (_coustomer != null) + { + coustomer = _coustomer.SubPart.Replace("-", ""); + } + } + else + { + coustomer = part.PartCode.Replace("-", ""); + } + + var _part=db.TA_PART.FirstOrDefault(p=>p.PartCode==p_entity.PartCode && p.Site==p_entity.Site); - + var _AsnBillNum=db.TB_ASN.FirstOrDefault(p => p.AsnBillNum == p_entity.AsnBillNum ); + var _Ask = db.TB_ASK_DETAIL.FirstOrDefault(p => p.PartCode == part.PartCode); + var _Askde = db.TB_ASK_DETAIL.FirstOrDefault(p => p.PartCode == part.PartCode&&p.AskBillNum== _AsnBillNum.AskBillNum); + string str; + string str1; + string str2; + string str3; + string str4; + string str5; + string str6; + str2 = _AsnBillNum.ReceiveTime.ToString(); + var _PinFan = db.TA_PinFan.FirstOrDefault(p => p.PartCode == p_entity.PartCode); + str6 = _PinFan == null ? "" : _PinFan.Barcodnt; + var _Appliance = db.TA_Appliance.FirstOrDefault(p => p.VendID == _AsnBillNum.VendId && p.PartNumber == _Askde.SubSite); + str = _Appliance == null ? "" : _Appliance.Model;// + str1 = _Appliance == null ? "" : _Appliance.ReciteNumber;// + str3 = _Appliance == null ? "" : _Appliance.SufanLand;// + str4 = _Appliance == null ? "" : _Appliance.BoxType;// + str5 = _Appliance == null ? "" : _Appliance.PostEngineering;//󹤳 if (ret.State == ReturnStatus.Succeed) { var barcodeRule = ret.Result; @@ -711,6 +1161,8 @@ namespace CK.SCP.Controller { BarCode = code, PartCode = part.PartCode, + Extend12 = coustomer, + VendPartCode = vendPart?.VendPartCode, Batch = p_entity.Batch, ProduceDate = (DateTime)p_entity.ProduceDate, @@ -719,19 +1171,34 @@ namespace CK.SCP.Controller Qty = p_entity.Qty, BarCodeType = 1, BillNum = p_entity.AsnBillNum, - PoBillNum=p_entity.PoBillNum, + PoBillNum = p_entity.PoBillNum, PoBillLine = p_entity.PoLine, VendId = p_entity.VendId, VendBatch = p_entity.VendBatch, - + Extend1 = _part.PartDesc2, + Extend2 = _part.ReceivePort,//ë + Extend3 = _part.PalletSize,// CreateTime = p_entity.CreateTime, CreateOper = p_entity.CreateUser, State = 0, Remark = p_entity.UpdateInfo, PackQty = p_entity.PackQty, Site = p_entity.Site, - IsScanned = false - + IsScanned = false, + Extend4 = _Askde.SubSite,//ŲϺ + Extend5 = str,// + Extend7 = part.PartDesc1, + Extend6 = DateTime.Parse(str2), + Extend8 = str1,// + Extend9 = str3,// + Extend10 = str4,// + Extend11 = str5,//󹤳 + Extend13 = (_AsnBillNum.ShipTime).Value, + Extend14 = _part1.Extend2, + Extend15 = str6,//Ʒ + Extend16 = _part1.Extend1, + ProjectId = p_entity.UpdateUser + }; if (_part == null) @@ -744,7 +1211,7 @@ namespace CK.SCP.Controller var _isCheck=(_part.Ischeck == null)?false:_part.Ischeck; barcode.Qlevel = _part.Qlevel; barcode.QMark = (_isCheck == true) ? "" : "ȫ"; - barcode.ProjectId = _part.ProjectId; + //barcode.ProjectId = _part.ProjectId; } var fullCode = GetFullCode(barcode); barcode.FullBarCode = fullCode; @@ -994,7 +1461,111 @@ namespace CK.SCP.Controller } return _ret; } - private static ResultObject GetBarcodeRule( string partcode, string batch, int cnt = 1) + public static ResultObject updatebarder(List barder) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + foreach (var yy in barder) + { + var _barder = db.TS_BARCODE.SingleOrDefault(t => t.UID.ToString() == yy); + var _second1 = db.TS_BARCODE.Where(p => p.PartCode == _barder.PartCode).Select(r => r.SerialNum).Max(); + var _bard = db.TS_BARCODE.SingleOrDefault(t => t.SerialNum.ToString() == _second1.ToString()&&t.PartCode==_barder.PartCode); + string str = _barder.BarCode; + //str.Split('.'); + + //string str1 = str.Substring(str.Length - 6); + string str1 = _bard.SerialNum; + string str3 = str.Substring(0, str.Length - 6); + int i = Int32.Parse(str1); + i = i + 1; + string ss = i.ToString().PadLeft(6, '0'); + string str4=str3+ss; + var _barder1 = db.TS_BARCODE.Count(t => t.BarCode.ToString() == str4); + _barder.BarCode = str4; + _barder.SerialNum = ss; + db.TS_BARCODE.AddOrUpdate(_barder); + + + if (db.SaveChanges() != -1) + { + _ret.State = ReturnStatus.Succeed; + + } + else + { + _ret.State = ReturnStatus.Failed; + + } + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//ʵ֤쳣 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("{0}ֶΣ{1}Ϣ{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "GetBarcodeRule", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "ֶ֤ʧ" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//ͻ쳣 + { + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "GetBarcodeRule", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "GetBarcodeRule", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "GetBarcodeRule", e.Message); + throw e; + } + return _ret; + } + public static string Save_TS_Asn(string ls) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + var TT= db.TS_BARCODE.Where(p => p.UID.ToString() == ls).FirstOrDefault(); + var SS=db.TA_PART.Where(p => p.PartCode == TT.PartCode).FirstOrDefault(); + string part = SS.PartGroup; + return part; + } + } + private static ResultObject GetBarcodeRule(string partcode, string batch, int cnt = 1) { ResultObject _ret = new ResultObject(); try @@ -1027,13 +1598,13 @@ namespace CK.SCP.Controller { _ret.State = ReturnStatus.Succeed; _ret.Result = barcodeRule; - + } else { _ret.State = ReturnStatus.Failed; - - } + + } } } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//ʵ֤쳣 @@ -1055,7 +1626,7 @@ namespace CK.SCP.Controller } catch (OptimisticConcurrencyException ex)//ͻ쳣 { - + _ret.State = ReturnStatus.Failed; _ret.ErrorList.Add(ex); LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_BARCODE_CONTROLLER), "GetBarcodeRule", ex.ToString()); @@ -1071,7 +1642,7 @@ namespace CK.SCP.Controller { var inner = (UpdateException)ex.InnerException; - + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); } else @@ -1088,7 +1659,6 @@ namespace CK.SCP.Controller } return _ret; } - private static ResultObject GetPalletsRule(string partcode, string batch, int cnt = 1) { ResultObject _ret = new ResultObject(); diff --git a/Controller/SCP_BILLCODE_CONTROLLER.cs b/Controller/SCP_BILLCODE_CONTROLLER.cs index 916e5ab..935e9aa 100644 --- a/Controller/SCP_BILLCODE_CONTROLLER.cs +++ b/Controller/SCP_BILLCODE_CONTROLLER.cs @@ -24,6 +24,36 @@ namespace CK.SCP.Controller return GetTablePK("P", "TB_PO", "PoBillNum", "yyMMdd", 4); + } + public static string MakemaxPOCode(string vendid,string time) + { + + return GetTablePK(vendid, "TB_MAXPO", "PoBillNum", time, 4); + + } + public static string MakePOCode1() + { + + return GetTablePK("CYD03", "TB_PO", "PoBillNum", "yyMM", 5); + + } + public static string MakePOCode3() + { + + return GetTablePK("FB2", "TB_PO", "PoBillNum", "yyyyMMdd", 3); + + } + public static string MakePOCode4() + { + + return GetTablePK("FB1", "TB_PO", "PoBillNum", "yyyyMMdd", 3); + + } + public static string MakePOCode2() + { + + return GetTablePK("CYD01", "TB_PO", "PoBillNum", "yyMM", 5); + } public static string MakeQualityCode() { @@ -67,6 +97,10 @@ namespace CK.SCP.Controller { return GetTablePKByNum("K", "TB_ASK", "AskBillNum", "yyMMdd", 4, num); } + public static string MakeASKCodeByNum1(int num) + { + return GetTablePKByNum("K", "TB_ASK", "AskBillNum", "yyMM",6 , num); + } public static string MakeASKCode() { diff --git a/Controller/SCP_CONTRACT_CONTROLLER.cs b/Controller/SCP_CONTRACT_CONTROLLER.cs index 2a83b29..415fe4c 100644 --- a/Controller/SCP_CONTRACT_CONTROLLER.cs +++ b/Controller/SCP_CONTRACT_CONTROLLER.cs @@ -361,7 +361,91 @@ namespace CK.SCP.Controller } return p_list; } + public static List GET_SUB_PART_LIST(List p_list) + { + + if (p_list.Count > 0) + { + + p_list.ForEach(p => + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + if (!string.IsNullOrEmpty(p.SubSite)) + { + var part = db.TA_PART.FirstOrDefault(t => t.PartCode == p.SubSite); + if (part != null) + { + p.Subpartspec = part.PartDesc2; + } + } + } + }); + + } + return p_list; + } + public static List GET_MAXPO_LIST(List p_list) + { + + if (p_list.Count > 0) + { + p_list.ForEach(p => + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + List _ls = new List(); + var _No = db.TB_MAXPO_CONSUME.Where(t => t.PartCode == p.PartCode&&t.BillNum==p.PoBillNum).ToList(); + var _Month = db.V_TB_MAXPO_CONSUME.Where(t => t.PartCode == p.PartCode && t.BillNum == p.PoBillNum).ToList(); + + foreach(var Mo in _Month) + { + if (!_ls.Contains(Mo.ContractMonth)) + { + _ls.Add(Mo.ContractMonth); + } + } + string ContactNo = string.Join(";",_ls); + p.ContractMonth = ContactNo; + foreach (var pa in _No) + { + ContactNo = ContactNo + pa.PoBillNum + ";"; + } + p.ContractNo = ContactNo.Substring(0, ContactNo.Length - 1).Trim(); + } + + + }); + + } + return p_list; + } + + public static List GET_SUB_PART_LIST_CYJ(List p_list) + { + + if (p_list.Count > 0) + { + + p_list.ForEach(p => + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + if (!string.IsNullOrEmpty(p.PartCode)) + { + var part = db.TA_PART.FirstOrDefault(t => t.PartCode == p.PartCode); + if (part != null) + { + p.Partname = part.PartDesc1; + } + } + } + }); + + } + return p_list; + } public static List GET_CONTRACT_PRICE_LIST(List p_list) { diff --git a/Controller/SCP_EXCEL_CONTROLLER.cs b/Controller/SCP_EXCEL_CONTROLLER.cs index cb77c5a..3942ec5 100644 --- a/Controller/SCP_EXCEL_CONTROLLER.cs +++ b/Controller/SCP_EXCEL_CONTROLLER.cs @@ -62,8 +62,9 @@ namespace CK.SCP.Controller po_detail.发货数 = itm.ShippedQty.ToString(); po_detail.收货数 = itm.ReceivedQty.ToString(); po_detail.退货数 = itm.RejectQty; - po_detail.到货日期 = itm.EndTime == null ? string.Empty : ((DateTime)itm.BeginTime).ToString("yyyyMMdd"); ; + po_detail.预计到货日期 = itm.EndTime.ToString(); po_detail.单位 = itm.PoUnit; + po_detail.存储地点 = itm.Extend2; _exportDetailList.Add(po_detail); }); var _list_dt = ConvertHelper.ToDataTable(_exportDetailList); @@ -71,6 +72,56 @@ namespace CK.SCP.Controller } return _ds; } + public static DataSet GET_MAXPO_EXECEL(List p_lst, bool p_IsDetail = false) + { + DataSet _ds = new DataSet(); + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + if (p_IsDetail == false) + { + var _ls = db.V_TB_MAXPO.Where(p => p_lst.Contains(p.PoBillNum)).ToList(); + var _exportList = new List(); + _ls.ForEach(itm => + { + SCP_MAXPODC_EXPORT _export = new SCP_MAXPODC_EXPORT(); + _export.订单编号 = itm.PoBillNum; + _export.合同月 = itm.ContractMonth; + _export.供应商编码 = itm.VendId; + _export.供应商名称 = itm.VendName; + _exportList.Add(_export); + }); + var _dt = ConvertHelper.ToDataTable(_exportList); + _ds.Tables.Add(_dt); + } + var _detailList = db.V_TB_MAXPO_DETAIL.Where(p => p_lst.Contains(p.PoBillNum)).ToList(); + var _exportDetailList = new List(); + _detailList.ForEach(itm => + { + var po_detail = new SCP_MAXPO_DETAIL_EXPORT(); + var part = db.TA_PART.FirstOrDefault(p=>p.PartCode==itm.PartCode); + po_detail.原材物料号 = itm.PartNumber; + po_detail.零件号 = itm.PartCode; + po_detail.订货件数 = itm.OrderNumber.ToString(); + po_detail.订货量吨 = itm.OrderQtyd.ToString(); + po_detail.起定量 = itm.MinordQty.ToString(); + po_detail.技术标准 = itm.TechStandard; + po_detail.材料厂家 = itm.Matermanu; + po_detail.行号 = itm.PoLine.ToString(); + po_detail.材质 = part.PartDesc2; + po_detail.车型 = itm.Model; + po_detail.预测1 = itm.forecastone; + po_detail.预测2 = itm.forecasttwo; + po_detail.预测3 = itm.forecastthree; + po_detail.预测4 = itm.forecastfour; + po_detail.预测5 = itm.forecastfive; + po_detail.预测6 = itm.forecastsix; + _exportDetailList.Add(po_detail); + }); + var _list_dt = ConvertHelper.ToDataTable(_exportDetailList); + _ds.Tables.Add(_list_dt); + } + return _ds; + } public static DataSet GET_OTD_VendId_REPORT_EXECEL(List p_lst) { DataSet _ds = new DataSet(); @@ -239,7 +290,7 @@ namespace CK.SCP.Controller } return _ds; - } + } public static DataSet GET_ASN_EXECEL(List p_lst) { DataSet _ds = new DataSet(); @@ -342,7 +393,9 @@ namespace CK.SCP.Controller //_entity.折扣价格 = itm.DiscountPrice.ToString(); //_entity.折扣备注 = itm.DiscountRemark; _entity.开票数量 = itm.Qty.ToString(); - _entity.备注 = itm.Remark; + _entity.备注 = itm.Remark; + _entity.发票金额 = itm.Extend1 =( itm.Price*itm.Qty).ToString(); + _entity.订单金额 = itm.Extend2 = (itm.PurCost * itm.Qty).ToString(); _exportDetailList.Add(_entity); }); var _list_dt = ConvertHelper.ToDataTable(_exportDetailList); diff --git a/Controller/SCP_INVOICE_CONTROLLER.cs b/Controller/SCP_INVOICE_CONTROLLER.cs index ad98597..059a4e1 100644 --- a/Controller/SCP_INVOICE_CONTROLLER.cs +++ b/Controller/SCP_INVOICE_CONTROLLER.cs @@ -336,7 +336,343 @@ namespace CK.SCP.Controller throw e; } } + public static void Get_V_TB_INVOICE_List1(V_TB_REEEE p_entity, Action>> p_action) + { + ResultObject> _ret = new ResultObject>(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + IQueryable q = db.V_TB_REEEE; + if (!string.IsNullOrEmpty(p_entity.PoBillNum)) + { + q = q.Where(p => p.PoBillNum == p_entity.PoBillNum); + } + if (!string.IsNullOrEmpty(p_entity.VendId)) + { + q = q.Where(p => p.VendId == p_entity.VendId); + } + if (!string.IsNullOrEmpty(p_entity.VendName)) + { + q = q.Where(p => p.VendName.Contains(p_entity.VendName)); + } + if (!string.IsNullOrEmpty(p_entity.PartCode)) + { + q = q.Where(p => p.PartCode.Contains(p_entity.PartCode)); + } + if (!string.IsNullOrEmpty(p_entity.PartDesc2)) + { + q = q.Where(p => p.PartDesc2.Contains(p_entity.PartDesc2)); + } + if (!string.IsNullOrEmpty(p_entity.PartGroup)) + { + q = q.Where(p => p.PartGroup.Contains(p_entity.PartGroup)); + } + if (!string.IsNullOrEmpty(p_entity.CreateUser)) + { + q = q.Where(p => p.CreateUser.Contains(p_entity.CreateUser)); + } + if (!string.IsNullOrEmpty(p_entity.DockCode)) + { + q = q.Where(p => p.DockCode.Contains(p_entity.DockCode)); + } + if (!string.IsNullOrEmpty(p_entity.Buyer)) + { + q = q.Where(p => p.Buyer.Contains(p_entity.Buyer)); + } + if (!string.IsNullOrEmpty(p_entity.Describe)) + { + q = q.Where(p => p.Describe.Contains(p_entity.Describe)); + } + if (p_entity.ReceiveTimeBegin != null) + { + + q = q.Where(p => p.CreateTime >= p_entity.ReceiveTimeBegin); + } + + if (p_entity.ReceiveTimeEnd != null) + { + q = q.Where(p => p.CreateTime <= p_entity.ReceiveTimeEnd); + + + } + if (p_entity.Qty != 0) + { + q = q.Where(p => p.Qty == p_entity.Qty); + } + _ret.State = ReturnStatus.Succeed; + _ret.Result = q; + p_action(_ret); + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", e.Message); + throw e; + } + } + public static void Get_V_TB_INVOICE_List_APPLIANCE(V_TA_APPLIANCE p_entity, Action>> p_action) + { + ResultObject> _ret = new ResultObject>(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + IQueryable q = db.V_TA_APPLIANCE; + if (!string.IsNullOrEmpty(p_entity.PartNumber)) + { + q = q.Where(p => p.PartNumber == p_entity.PartNumber); + } + if (!string.IsNullOrEmpty(p_entity.VendID)) + { + q = q.Where(p => p.VendID == p_entity.VendID); + } + _ret.State = ReturnStatus.Succeed; + _ret.Result = q; + p_action(_ret); + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", e.Message); + throw e; + } + } + public static void Get_TA_SubPartCode(V_TA_SubPartCode p_entity, Action>> p_action) + { + ResultObject> _ret = new ResultObject>(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + IQueryable q = db.V_TA_SubPartCode; + if (p_entity.PartList != null && p_entity.PartList.Count > 0) + { + q = q.Where(p => p_entity.PartList.Contains(p.PartCode)); + } + _ret.State = ReturnStatus.Succeed; + _ret.Result = q; + p_action(_ret); + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", e.Message); + throw e; + } + } + public static void Get_TA_RECEING(TA_Receiving_Information p_entity, Action>> p_action) + { + ResultObject> _ret = new ResultObject>(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + IQueryable q = db.TA_Receiving_Information; + + if (!string.IsNullOrEmpty(p_entity.Shift)) + { + q = q.Where(p => p.Shift == p_entity.Shift); + } + _ret.State = ReturnStatus.Succeed; + _ret.Result = q; + p_action(_ret); + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List", e.Message); + throw e; + } + } public static void Get_V_TB_INVOICE_ERP_List(V_TB_INVOICE p_entity, Action>> p_action) { ResultObject> _ret = new ResultObject>(); diff --git a/Controller/SCP_PALLET_CONTROLLER.cs b/Controller/SCP_PALLET_CONTROLLER.cs index 37ccd14..4571a60 100644 --- a/Controller/SCP_PALLET_CONTROLLER.cs +++ b/Controller/SCP_PALLET_CONTROLLER.cs @@ -175,6 +175,87 @@ namespace CK.SCP.Controller } } + public static void Get_TB_PALLETS_BTL_List(TB_PALLETS_BTL p_entity, Action>> p_action) + { + ResultObject> _ret = new ResultObject>(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + IQueryable q = db.TB_PALLETS_BTL; + if (p_entity.UID != 0) + { + q = q.Where(p => p.UID == p_entity.UID); + } + if (p_entity.UIDList != null && p_entity.UIDList.Count > 0) + { + q = q.Where(p => p_entity.UIDList.Contains(p.UID)); + } + if (!string.IsNullOrEmpty(p_entity.AsnBillNum)) + { + q = q.Where(p => p.AsnBillNum.Contains(p_entity.AsnBillNum)); + } + if (!string.IsNullOrEmpty(p_entity.VendId)) + { + q = q.Where(p => p.VendId.Contains(p_entity.VendId)); + } + if (!string.IsNullOrEmpty(p_entity.PartCode)) + { + q = q.Where(p => p.PartCode.Contains(p_entity.PartCode)); + } + q = q.Where(p => p.IsDeleted == p_entity.IsDeleted); + _ret.State = ReturnStatus.Succeed; + _ret.Result = q; + p_action(_ret); + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_TB_PALLETS_List", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_TB_PALLETS_List", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_TB_PALLETS_List", ex.ToString()); + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_TB_PALLETS_List", e.Message); + throw e; + } + } public static void Get_TB_PALLETS_List(TB_PALLETS p_entity, Action>> p_action) { ResultObject> _ret = new ResultObject>(); diff --git a/Controller/SCP_PO_CONTROLLER.cs b/Controller/SCP_PO_CONTROLLER.cs index f863109..428ccfd 100644 --- a/Controller/SCP_PO_CONTROLLER.cs +++ b/Controller/SCP_PO_CONTROLLER.cs @@ -13,6 +13,9 @@ using System.Data.Entity.Core; using CK.SCP.Models.ScpEntity.ExcelExportEnttity; using System.Text.RegularExpressions; using System.Threading; +using System.Data; +using Newtonsoft.Json; +using CK.SCP.Models.UniApiEntity; namespace CK.SCP.Controller { @@ -37,7 +40,7 @@ namespace CK.SCP.Controller } if (!string.IsNullOrEmpty(p_entity.ErpBillNum)) { - q = q.Where(p => p.ErpBillNum==p_entity.ErpBillNum); + q = q.Where(p => p.ErpBillNum == p_entity.ErpBillNum); } if (!string.IsNullOrEmpty(p_entity.VendId)) { @@ -94,7 +97,11 @@ namespace CK.SCP.Controller } if (p_entity.EndTime != null) { - q = q.Where(p => p.EndTime <= p_entity.EndTime); + q = q.Where(p => p.EndTime >= p_entity.EndTime); + } + if (p_entity.EndTime_End != null) + { + q = q.Where(p => p.EndTime <= p_entity.EndTime_End); } if (p_entity.UserInAddress != null && p_entity.UserInAddress.Count > 0) { @@ -104,7 +111,7 @@ namespace CK.SCP.Controller { q = q.Where(p => p_entity.UserInVendIds.Contains(p.VendId)); } - + if (!string.IsNullOrEmpty(p_entity.SubSite)) { q = q.Where(p => p.SubSite.Contains(p_entity.SubSite)); @@ -121,23 +128,26 @@ namespace CK.SCP.Controller { q = q.Where(p => p.Extend3.Contains(p_entity.Extend3)); } - - //if (!string.IsNullOrEmpty(p_entity.PartCode)) - //{ - // var _po = db.TB_PO_DETAIL.Where(p => p.PartCode == p_entity.PartCode && p.IsDeleted== false); - // if (_po.Count() > 0) - // { - // List _list = new List(); - // _po.ToList().ForEach(itm => - // { - // _list.Add(itm.PoBillNum); - // }); - // if (_list.Count() > 0) - // { - // q = q.Where(p => _list.Contains(p.PoBillNum)); - // } - // } - //} + if (p_entity.MaxpoList != null && p_entity.MaxpoList.Count > 0) + { + q = q.Where(p => p_entity.MaxpoList.Contains(p.PoBillNum)); + } + if (!string.IsNullOrEmpty(p_entity.PartCode)) + { + var _po = db.TB_PO_DETAIL.Where(p => p.PartCode == p_entity.PartCode ); + if (_po.Count() > 0) + { + List _list = new List(); + _po.ToList().ForEach(itm => + { + _list.Add(itm.PoBillNum); + }); + if (_list.Count() > 0) + { + q = q.Where(p => _list.Contains(p.PoBillNum)); + } + } + } _ret.State = ReturnStatus.Succeed; _ret.Result = q; p_action(_ret); @@ -191,8 +201,7 @@ namespace CK.SCP.Controller throw e; } } - - + public static List LOAD_ASK_DETAIL_SUM(List p_list) { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) @@ -216,8 +225,153 @@ namespace CK.SCP.Controller } return p_list; } + public static ResultObject Save_TB_MAXPO_DETAIL_QTY(List p_entitys) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + foreach (var itm in p_entitys) + { + var _entity = db.TB_MAXPO_DETAIL.Where(p => p.UID == itm.UID).FirstOrDefault(); + if(itm.OrderQtykg <_entity.OrderQtykg- _entity.AsnQty) + { + _ret.MessageList.Add("零件号"+_entity.PartCode+"剩余可消耗订货量不足!"); + } + if( itm.OrderQtykg == 0) + { + _ret.MessageList.Add("订货量不能修改为0!"); + } + else + { + _entity.SurplusQty = itm.OrderQtykg - _entity.OrderQtykg + _entity.SurplusQty; + _entity.AsnQty=itm.OrderQtykg - _entity.OrderQtykg + _entity.AsnQty; + _entity.OrderQtykg = itm.OrderQtykg; + _entity.OrderQtyd = itm.OrderQtykg / 1000; + db.TB_MAXPO_DETAIL.AddOrUpdate(p => p.UID, _entity); + TS_UNI_API maxuni = new TS_UNI_API(); + maxuni.BillNum = _entity.PoBillNum; + maxuni.InterfaceType = "MaxPobillnum"; + maxuni.TableName = "TS_UNI_API"; + maxuni.BillType = 701; + maxuni.SubBillType = 0; + maxuni.PartCode = _entity.PartCode; + maxuni.VendId = _entity.VendId;//供应商编号 + if (string.IsNullOrEmpty(_entity.Texture)) + { + maxuni.Batch = ""; + } + else + { + maxuni.Batch = _entity.Texture;//材质 + } + maxuni.Qty = _entity.OrderNumber; + maxuni.State = 1; + maxuni.CreateOper = _entity.CreateUser;//创建者 + maxuni.CreateTime =DateTime.Now; + maxuni.PutTime = DateTime.Now; + maxuni.Extend1 = _entity.PartNumber; + maxuni.PackQty = _entity.MinordQty; + maxuni.Price = _entity.OrderQtyd; + maxuni.VendBatch = _entity.ContractMonth;//合同月 + maxuni.Currency = _entity.Model; + maxuni.Buyer = _entity.TechStandard; + maxuni.BuyerPhone =_entity.Finprspec;//规格 + maxuni.Tax = 0; + maxuni.PoUnit = _entity.forecastone;//预测1 + maxuni.LocUnit = _entity.forecasttwo;//预测2 + maxuni.Attn =_entity.forecastthree;//预测3 + maxuni.Receiver = _entity.forecastfour;//预测4 + maxuni.ModType = _entity.forecastfive;//预测5 + maxuni.SubSite = _entity.forecastsix;//预测6 + maxuni.Site = _entity.Site; + maxuni.Extend2 = _entity.Matermanu; + maxuni.TaxAmt = _entity.Singlecon;//单件消耗 + maxuni.ValidDate = DateTime.Now; + maxuni.ErpLineNum = _entity.PoLine; + maxuni.Domain = _entity.Site; + maxuni.Extend3 = "U"; + db.TS_UNI_API.AddOrUpdate(maxuni); + } + + + } + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Save_TB_ASK_DETAIL_LIER", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Save_TB_ASK_DETAIL_LIER", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Save_TB_ASK_DETAIL_LIER", ex.ToString()); + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Save_TB_ASK_DETAIL_LIER", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } public static List LOAD_PO_DETAIL_SUM(List p_list) { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) @@ -229,7 +383,7 @@ namespace CK.SCP.Controller { var _ask = db.TB_ASK_DETAIL.Where(p => p.PoBillNum == _detail.PoBillNum && p.IsDeleted == false).GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode }).Select(p => new { AskSum = p.Sum(itm => itm.AskQty), PoLine = p.Key.PoLine, PoBillNum = p.Key.PoBillNum, PartCode = p.Key.PartCode }); - var rec = db.TB_RECEIVE_DETAIL.Where(p => p.PoBillNum == _detail.PoBillNum && p.IsDeleted == false && p.State == (int)ReceiveState.Check && p.BillType == 0 ) + var rec = db.TB_RECEIVE_DETAIL.Where(p => p.PoBillNum == _detail.PoBillNum && p.IsDeleted == false && p.State == (int)ReceiveState.Check && p.BillType == 0) .GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode }).Select(p => new { ReceiveSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, PoBillNum = p.Key.PoBillNum, PartCode = p.Key.PartCode }); var reject = db.TB_RECEIVE_DETAIL.Where(p => p.PoBillNum == _detail.PoBillNum && p.IsDeleted == false && p.State == (int)RejectState.Check && p.BillType == 1).GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode }).Select(p => new { RejectSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, PoBillNum = p.Key.PoBillNum, PartCode = p.Key.PartCode }); @@ -245,7 +399,7 @@ namespace CK.SCP.Controller if (_detail.PoBillNum == itm.PoBillNum && _detail.PoLine == itm.PoLine && _detail.PartCode == itm.PartCode) { _detail.ReceivedQty = itm.ReceiveSum; - + } }); @@ -492,7 +646,27 @@ namespace CK.SCP.Controller return _ret; } - + public static List GetPoDetailList(List p_lst) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + return db.V_TB_PO_DETAIL.Where(p => p_lst.Contains(p.PoBillNum)).ToList(); + } + } + public static List GetMaxpoConsume(string maxpobillnum) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + return db.TB_MAXPO_CONSUME.Where(p => p.PoBillNum == maxpobillnum).ToList(); + } + } + public static List GetMaxPoDetailList(List p_lst) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + return db.V_TB_MAXPO_DETAIL.Where(p => p_lst.Contains(p.PoBillNum)).ToList(); + } + } public static ResultObject Save_TB_PO(List p_entitys) { ResultObject _ret = new ResultObject(); @@ -547,7 +721,7 @@ namespace CK.SCP.Controller { - _ret.State = ReturnStatus.Failed; + _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_TB_PO", ex.ToString()); @@ -608,7 +782,7 @@ namespace CK.SCP.Controller } - var _list = db.TB_PO_DETAIL.Where(p => p.PoBillNum == p_excel.QAD订单号 && p.PartCode == p_excel.零件号).ToList(); + var _list = db.TB_PO_DETAIL.Where(p => p.PoBillNum == p_excel.QAD订单号 && p.PartCode == p_excel.零件号).ToList(); if ( string.IsNullOrEmpty(p_excel.分组编号) || string.IsNullOrEmpty(p_excel.QAD订单号) || @@ -627,7 +801,7 @@ namespace CK.SCP.Controller else { p_excel.行号 = _list[0].PoLine.ToString(); - p_excel.价格= _list[0].Price.ToString(); + p_excel.价格 = _list[0].Price.ToString(); p_excel.单位 = _list[0].PoUnit.ToString(); p_excel.币种 = _list[0].Currency.ToString(); } @@ -635,6 +809,26 @@ namespace CK.SCP.Controller return ErrorList; } + private static List CheckExce2(ScpEntities db, string lt) + { + List ErrorList = new List(); + var _asn = db.TB_ASN_DETAIL.Count(p => p.PoBillNum ==lt); + if (_asn> 0) + { + ErrorList.Add(string.Format("订单【{0}】已经生成发货单了,不能作废", lt)); + } + return ErrorList; + } + private static List CheckExce3(ScpEntities db, string lt) + { + List ErrorList = new List(); + var _asn = db.TB_ASK.SingleOrDefault(p => p.AskBillNum == lt); + if (_asn.State > 0) + { + ErrorList.Add(string.Format("看板【{0}】不是新建状态,不能删除", lt)); + } + return ErrorList; + } public static ResultObject Save_EXCEL_PO_MOD(List p_order_list, string site, string p_creator, DateTime p_time, BillModType p_modtype, string subsite, string p_chineseName, string p_buyerPhone) { ResultObject _ret = new ResultObject(); @@ -688,7 +882,7 @@ namespace CK.SCP.Controller _PO_Detail.LocUnit = itm.单位; _PO_Detail.PoUnit = itm.单位; _PO_Detail.UnConv = 1; - _PO_Detail.Price = string.IsNullOrEmpty(itm.单价) ? 0 : decimal.Parse(itm.单价); + _PO_Detail.Price = string.IsNullOrEmpty(itm.单价) ? 0 : decimal.Parse(itm.单价); db.TB_PO_DETAIL.AddOrUpdate(_PO_Detail); }); _polist = _polist + _po.PoBillNum + ","; @@ -884,7 +1078,7 @@ namespace CK.SCP.Controller return _ret; } - public static ResultObject Save_EXCEL_PO_MOD1(List p_order_list, string site, string p_creator, DateTime p_time, string subsite, string p_chineseName, string p_buyerPhone,string CreateTime,string EN,string EndTime,string PartCode,string PoBillNum,string Remark, string Time,string VendId,string PoUnit) + public static ResultObject Save_EXCEL_PO_MOD1(List p_order_list, string site, string p_creator, DateTime p_time, string subsite, string p_chineseName, string p_buyerPhone, string CreateTime, string EN, string EndTime, string PartCode, string PoBillNum, string Remark, string Time, string VendId, string PoUnit) { ResultObject _ret = new ResultObject(); try @@ -899,7 +1093,7 @@ namespace CK.SCP.Controller OrderList.ForEach((p) => { var list = p.ToList(); - if (list.Count>0) + if (list.Count > 0) { TB_PO _po = new TB_PO(); _po.GUID = Guid.NewGuid(); @@ -1023,7 +1217,7 @@ namespace CK.SCP.Controller _ret.Result = false; } } - } + } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 { var sb = new StringBuilder(); @@ -1272,7 +1466,7 @@ namespace CK.SCP.Controller { ErrorList.Add(string.Format("订单编号【{0}】行号【{1}】已经存在,请更换行号!", p_excel.订单编号, p_excel.行号)); } - var checkcount = db.TB_PRICE.Where(p => p.PartCode == p_excel.零件号 && p.Site == site && p.VendId == p_excel.供应商编号 && p.StartTime <= DateTime.Now && DateTime.Now <= p.EndTime).ToList(); + var checkcount = db.TB_PRICE.Where(p => p.PartCode == p_excel.零件号 && p.Site == site && p.VendId == p_excel.供应商编号 && p.StartTime <= DateTime.Now && DateTime.Now <= p.EndTime).ToList(); if (checkcount.Count == 0) { ErrorList.Add(string.Format("零件名称【{0}】供应编码【{1}】价格表没有维护信息!", p_excel.零件号, p_excel.供应商编号)); @@ -1378,7 +1572,7 @@ namespace CK.SCP.Controller var ls = db.TA_VENDER.SingleOrDefault(p => p.VendId == p_excel.供应商编号); if (ls == null) { - ErrorList.Add(string.Format("订单编号【{1}】零件名称【{0}】的供应商编号不存在", p_excel.零件号, p_excel.订单编号)); + ErrorList.Add(string.Format("订单编号【{1}】零件名称【{0}】的供应商编号不存在", p_excel.零件号, p_excel.订单编号)); } decimal a = decimal.Parse(p_excel.数量); if (a <= 0) @@ -1426,7 +1620,7 @@ namespace CK.SCP.Controller else { ErrorList.Add(string.Format("订单编号【{2}】零件名称【{0}】供应编码【{1}】的订单创建日期或要求到货日期要求为文本格式!", p_excel.零件号, p_excel.供应商编号, p_excel.订单编号)); - } + } if (!string.IsNullOrEmpty(p_excel.订单类型)) { if (p_excel.订单类型.ToUpper() != "S" && p_excel.订单类型.ToUpper() != "M") @@ -1547,13 +1741,153 @@ namespace CK.SCP.Controller if ( string.IsNullOrEmpty(p_excel.供应商代码) || string.IsNullOrEmpty(p_excel.零件号) || - string.IsNullOrEmpty(p_excel.标包数)||string.IsNullOrEmpty(p_excel.小包装数)||string.IsNullOrEmpty(p_excel.托盘包装数)) + string.IsNullOrEmpty(p_excel.标包数) || string.IsNullOrEmpty(p_excel.小包装数) || string.IsNullOrEmpty(p_excel.托盘包装数)) { ErrorList.Add(string.Format("供应商代码【{0}】零件编号【{1}】有填写为空!", p_excel.供应商代码, p_excel.零件号)); } return ErrorList; } /// + /// 供应商零件导入验证 + /// + /// + /// + /// + private static List CheckExcelMode_VenderPart1(ScpEntities db, SCP_VENDER_PART_EXPORT p_excel, string site) + { + List ErrorList = new List(); + //if (!string.IsNullOrEmpty(p_excel.零件号)) + //{ + // //int count = db.TA_PART.Count(p => p.PartCode == p_excel.零件号); + // //if (count <= 0) + // //{ + // // ErrorList.Add(string.Format("零件编号【{0}】不存在!", p_excel.零件号)); + // //} + // int count1 = db.TA_Appliance.Count(p => p.PartCode == p_excel.零件号 && p.Appliancenumber==p_excel.器具型号/*&&p.Model==p_excel.车型*/); + // if (count1 > 0) + // { + // ErrorList.Add(string.Format("零件编号【{0}】已存在!", p_excel.零件号)); + // } + //} + if ( + string.IsNullOrEmpty(p_excel.零件号码)|| + string.IsNullOrEmpty(p_excel.收货口)|| + string.IsNullOrEmpty(p_excel.供应商代码)|| + string.IsNullOrEmpty(p_excel.标包数) + ) + { + ErrorList.Add(string.Format("零件号码【{0}】有填写为空!", p_excel.零件号码)); + } + return ErrorList; + } + + /// + /// 供应商零件导入验证 + /// + /// + /// + /// + private static List CheckExcelMode_CousmterPart1(ScpEntities db, SCP_VENDER_PART_EXPORT p_excel, string site) + { + List ErrorList = new List(); + if (!string.IsNullOrEmpty(p_excel.零件号)) + { + int count = db.TA_PART.Count(p => p.PartCode == p_excel.零件号); + if (count <= 0) + { + ErrorList.Add(string.Format("零件号【{0}】不存在!", p_excel.零件号)); + } + } + + if ( + string.IsNullOrEmpty(p_excel.零件号) || + string.IsNullOrEmpty(p_excel.客户零件号) + ) + { + ErrorList.Add(string.Format("零件号【{0}】有填写为空!", p_excel.零件号)); + } + return ErrorList; + } + + + /// + /// 本特勒收货信息导入验证 + /// + /// + /// + /// + private static List CheckExcelMode_Receiving(ScpEntities db, SCP_VENDER_PART_EXPORT p_excel, string site) + { + List ErrorList = new List(); + if(p_excel.班次!="白班"&& p_excel.班次 != "夜班") + { + ErrorList.Add(string.Format("班次【{0}】填写不对,班次只能为白班或者夜班!", p_excel.班次)); + } + if ( + string.IsNullOrEmpty(p_excel.班次) || + string.IsNullOrEmpty(p_excel.收货人) || + string.IsNullOrEmpty(p_excel.收货人电话) + + ) + { + ErrorList.Add(string.Format("班次【{0}】有填写为空!", p_excel.班次)); + } + return ErrorList; + } + private static List CheckExcelMode_PurchasingGroup(ScpEntities db, SCP_VENDER_PART_EXPORT p_excel, string site) + { + List ErrorList = new List(); + + if ( + string.IsNullOrEmpty(p_excel.采购组) || + string.IsNullOrEmpty(p_excel.中文名称) || + string.IsNullOrEmpty(p_excel.描述) + ) + { + ErrorList.Add(string.Format("采购组【{0}】有填写为空!", p_excel.采购组)); + } + return ErrorList; + } + private static List CheckExcelMode_Sort(ScpEntities db, SCP_VENDER_EXPORT p_excel, string site) + { + List ErrorList = new List(); + + if ( + string.IsNullOrEmpty(p_excel.品番) || + string.IsNullOrEmpty(p_excel.Code39条码) || + + string.IsNullOrEmpty(p_excel.条码内容) + ) + { + ErrorList.Add(string.Format("品番【{0}】有填写为空!", p_excel.品番)); + } + return ErrorList; + } + private static List CheckExcelMode_Box(ScpEntities db, SCP_VENDER_PART_EXPORT p_excel, string site) + { + List ErrorList = new List(); + + if ( + + string.IsNullOrEmpty(p_excel.箱种) + ) + { + ErrorList.Add(string.Format("箱种【{0}】有填写为空!", p_excel.箱种)); + } + return ErrorList; + } + private static List CheckExcel_Model(ScpEntities db, SCP_VENDER_EXPORT p_excel, string site) + { + List ErrorList = new List(); + + var ModelCount = db.TA_CarModel.Count(p=>p.Model==p_excel.车型); + if (ModelCount > 0) + { + ErrorList.Add(string.Format("车型【{0}】已经存在,请不要重复导入!", p_excel.车型)); + } + return ErrorList; + } + /// /// 供应商导入验证 /// /// @@ -1645,7 +1979,7 @@ namespace CK.SCP.Controller string.IsNullOrEmpty(p_excel.零件名称) || string.IsNullOrEmpty(p_excel.项目编号)) { - ErrorList.Add(string.Format("零件编号【{0}】有填写为空!", p_excel.零件编号)); + ErrorList.Add(string.Format("零件编号{0}有填写为空!", p_excel.零件编号)); } return ErrorList; } @@ -1658,210 +1992,6119 @@ namespace CK.SCP.Controller private static List CheckExcelMode_Po(ScpEntities db, SCP_PO_EXPORT_IMPORT_MODEL p_excel) { List ErrorList = new List(); - if (!string.IsNullOrEmpty(p_excel.订单编号)) + if (!string.IsNullOrEmpty(p_excel.零件号)) { + var _count = db.TA_Appliance.Count(p => p.PartNumber == p_excel.零件号&&p.VendID==p_excel.供应商编号); + if (_count == 0) { - int count = db.TB_PO.Count(p => p.PoBillNum == p_excel.订单编号); - if (count > 0) + ErrorList.Add(string.Format("零件号码{0}与供应商{1}没有对应的基础信息!", p_excel.零件号,p_excel.供应商编号)); + } + } + var _count1 = db.TA_PART.Count(p => p.PartCode == p_excel.物料号码); + if (_count1 == 0) + { + ErrorList.Add(string.Format("物料号码{0}不存在!", p_excel.物料号码)); + } + + + if (_count1 > 0) + { + if (!string.IsNullOrEmpty(p_excel.组件物料号)) + { + ErrorList.Add(string.Format("普通采购订单不涉及组件物料号,请到委外采购订单菜单导入")); + } + var _part = db.TA_PART.SingleOrDefault(p => p.PartCode == p_excel.物料号码); + if (_part.PartCode.ToString()!= p_excel.物料号码.ToString()) + { + ErrorList.Add(string.Format("物料号码{0}填写不正确请注意大小写!", p_excel.物料号码)); + } + var _Unit = db.TA_PART.Count(p => p.PartCode == p_excel.物料号码&&p.Unit==p_excel.单位); + if (_Unit==0) + { + ErrorList.Add(string.Format("物料号码{0}单位填写不正确!", p_excel.物料号码)); + } + + if(_part.Unit.ToString()!= p_excel.单位.ToString()) + { + ErrorList.Add(string.Format("物料号码{0}单位填写不正确,请注意大小写!", p_excel.物料号码)); + } + + + var _checkpart = db.TA_PART.FirstOrDefault(p => p.PartCode == p_excel.物料号码); + if (decimal.Parse(_checkpart.Remark) <= 0) { - ErrorList.Add(string.Format("订单编号{0}已经存在!", p_excel.订单编号)); + ErrorList.Add(string.Format("物料号码{0}没有价格!", p_excel.物料号码)); } } - else + var _count2 = db.TA_VENDER.Count(p => p.VendId == p_excel.供应商编号); + if (_count2 == 0) { - ErrorList.Add(string.Format("订单编号为空!")); + ErrorList.Add(string.Format("供应商{0}不存在!", p_excel.供应商编号)); } - decimal _result = 0; - - if (!decimal.TryParse(p_excel.数量, out _result)) + if (_count2 > 0) { - ErrorList.Add(string.Format("订单编号{0}零件编号{1}数量填写有问题", p_excel.订单编号, p_excel.数量)); + var _countvend = db.TA_VENDER.SingleOrDefault(p => p.VendId == p_excel.供应商编号); + if (_countvend.VendId != p_excel.供应商编号) + { + ErrorList.Add(string.Format("供应商编号{0}不正确!", p_excel.供应商编号)); + } } + var _count7 = db.TA_PurchasGroup.Count(p => p.PurchasingGroup == p_excel.采购组 && p.ChineseName == p_excel.采购员); + if (_count7 == 0) + { + ErrorList.Add(string.Format("采购组{0}不存在!", p_excel.采购组)); + } + if (_count7 > 0) + { + var _count9 = db.TA_PurchasGroup.SingleOrDefault(p => p.PurchasingGroup == p_excel.采购组 && p.ChineseName == p_excel.采购员 && p.ChineseName == p_excel.采购员); + if (_count9.PurchasingGroup.ToString() != p_excel.采购组.ToString()) + { + ErrorList.Add(string.Format("采购组{0}填写错误,请注意大小写!", p_excel.采购组)); + } + } - //var _count = db.TA_PART.Count(p => p.PartCode == p_excel.零件号); - if ( - string.IsNullOrEmpty(p_excel.订单编号) || - string.IsNullOrEmpty(p_excel.行号) || - string.IsNullOrEmpty(p_excel.订单创建时间) || - string.IsNullOrEmpty(p_excel.要求到货日期) || - string.IsNullOrEmpty(p_excel.零件号) || + var _count8 = db.TA_StorageLocation.Count(p => p.StLocation == p_excel.存储地点); + if (_count8 == 0) + { + ErrorList.Add(string.Format("存储地点{0}不存在!", p_excel.存储地点)); + } + if (_count8 > 0) + { + var _count10 = db.TA_StorageLocation.SingleOrDefault(p => p.StLocation == p_excel.存储地点); + if (_count10.StLocation.ToString() != p_excel.存储地点.ToString()) + { + ErrorList.Add(string.Format("存储地点{0}填写错误,请注意大小写!", p_excel.存储地点)); + } + } + if ( + string.IsNullOrEmpty(p_excel.供应商编号) || + string.IsNullOrEmpty(p_excel.物料号码) || + string.IsNullOrEmpty(p_excel.采购员) || + string.IsNullOrEmpty(p_excel.采购组) || + string.IsNullOrEmpty(p_excel.采购员电话) || + string.IsNullOrEmpty(p_excel.存储地点) || + string.IsNullOrEmpty(p_excel.单位) || + string.IsNullOrEmpty(p_excel.订单创建时间)) + { + ErrorList.Add(string.Format("分组【{0}】物料号码有填写为空!", p_excel.物料号码)); + } + return ErrorList; + } + /// + /// 期货订单导入检查 + /// + /// + /// + /// + private static List CheckExcelMode_QH_Po(ScpEntities db, SCP_PO_EXPORT_IMPORT_MODEL p_excel) + { + List ErrorList = new List(); + if (!string.IsNullOrEmpty(p_excel.零件号)) + { + var _count = db.TA_Appliance.Count(p => p.PartNumber == p_excel.零件号 && p.VendID == p_excel.供应商编号); + if (_count == 0) + { + ErrorList.Add(string.Format("零件号码{0}与供应商{1}没有对应的基础信息!", p_excel.零件号, p_excel.供应商编号)); + } + } + var _count1 = db.TA_PART.Count(p => p.PartCode == p_excel.物料号码); + if (_count1 == 0) + { + ErrorList.Add(string.Format("物料号码{0}不存在!", p_excel.物料号码)); + } + if (!string.IsNullOrEmpty(p_excel.期货订单)) + { + if (p_excel.期货订单 != "Y") + { + ErrorList.Add(string.Format("物料号码{0}期货订单必须填Y!", p_excel.物料号码)); + } + } + + if (_count1 > 0) + { + var _part = db.TA_PART.SingleOrDefault(p => p.PartCode == p_excel.物料号码); + if (_part.PartCode.ToString() != p_excel.物料号码.ToString()) + { + ErrorList.Add(string.Format("物料号码{0}填写不正确请注意大小写!", p_excel.物料号码)); + } + var _Unit = db.TA_PART.Count(p => p.PartCode == p_excel.物料号码 && p.Unit == p_excel.单位); + if (_Unit == 0) + { + ErrorList.Add(string.Format("物料号码{0}单位填写不正确!", p_excel.物料号码)); + } + + if (_part.Unit.ToString() != p_excel.单位.ToString()) + { + ErrorList.Add(string.Format("物料号码{0}单位填写不正确,请注意大小写!", p_excel.物料号码)); + } + + + var _checkpart = db.TA_PART.FirstOrDefault(p => p.PartCode == p_excel.物料号码); + if (decimal.Parse(_checkpart.Remark) <= 0) + { + ErrorList.Add(string.Format("物料号码{0}没有价格!", p_excel.物料号码)); + } + } + var _count2 = db.TA_VENDER.Count(p => p.VendId == p_excel.供应商编号); + if (_count2 == 0) + { + ErrorList.Add(string.Format("供应商{0}不存在!", p_excel.供应商编号)); + } + if (_count2 > 0) + { + var _countvend = db.TA_VENDER.SingleOrDefault(p => p.VendId == p_excel.供应商编号); + if (_countvend.VendId != p_excel.供应商编号) + { + ErrorList.Add(string.Format("供应商编号{0}不正确!", p_excel.供应商编号)); + } + } + var maxpocount = db.TB_MAXPO_DETAIL.Count(p=>p.PartCode==p_excel.物料号码&&p.VendId == p_excel.供应商编号); + if (maxpocount ==0) + { + ErrorList.Add(string.Format("物料号码{0}供应商编号{1}没有对应的大订单!",p_excel.物料号码, p_excel.供应商编号)); + } + var _count7 = db.TA_PurchasGroup.Count(p => p.PurchasingGroup == p_excel.采购组 && p.ChineseName == p_excel.采购员); + if (_count7 == 0) + { + ErrorList.Add(string.Format("采购组{0}不存在!", p_excel.采购组)); + } + if (_count7 > 0) + { + var _count9 = db.TA_PurchasGroup.SingleOrDefault(p => p.PurchasingGroup == p_excel.采购组 && p.ChineseName == p_excel.采购员 && p.ChineseName == p_excel.采购员); + if (_count9.PurchasingGroup.ToString() != p_excel.采购组.ToString()) + { + ErrorList.Add(string.Format("采购组{0}填写错误,请注意大小写!", p_excel.采购组)); + } + } + + var _count8 = db.TA_StorageLocation.Count(p => p.StLocation == p_excel.存储地点); + if (_count8 == 0) + { + ErrorList.Add(string.Format("存储地点{0}不存在!", p_excel.存储地点)); + } + if (_count8 > 0) + { + var _count10 = db.TA_StorageLocation.SingleOrDefault(p => p.StLocation == p_excel.存储地点); + if (_count10.StLocation.ToString() != p_excel.存储地点.ToString()) + { + ErrorList.Add(string.Format("存储地点{0}填写错误,请注意大小写!", p_excel.存储地点)); + } + } + if ( + string.IsNullOrEmpty(p_excel.供应商编号) || + string.IsNullOrEmpty(p_excel.物料号码) || string.IsNullOrEmpty(p_excel.采购员) || + string.IsNullOrEmpty(p_excel.采购组) || string.IsNullOrEmpty(p_excel.采购员电话) || - string.IsNullOrEmpty(p_excel.数量) || + string.IsNullOrEmpty(p_excel.存储地点) || string.IsNullOrEmpty(p_excel.单位) || - string.IsNullOrEmpty(p_excel.单价) || + string.IsNullOrEmpty(p_excel.期货订单) || string.IsNullOrEmpty(p_excel.订单创建时间)) { - ErrorList.Add(string.Format("分组【{1}】零件名称【{0}】有填写为空!", p_excel.零件号, p_excel.订单编号)); + ErrorList.Add(string.Format("分组【{0}】物料号码有填写为空!", p_excel.物料号码)); + } + return ErrorList; + } + /// + /// 富维订单导入检查 + /// + /// + /// + /// + private static List CheckExcelMode_Po1(ScpEntities db, SCP_PO_EXPORT_IMPORT_MODEL p_excel) + { + List ErrorList = new List(); + var _count = db.TA_Appliance.Count(p => p.PartNumber == p_excel.零件号 && p.VendID == p_excel.供应商编号); + if (_count == 0) + { + ErrorList.Add(string.Format("零件号码{0}与供应商{1}没有对应的基础信息!", p_excel.零件号, p_excel.供应商编号)); + } + BomList1.JsonService bomVersionRe = new BomList1.JsonService(); + var _ReturnRelust = bomVersionRe.GetBomVersion(p_excel.物料号码, p_excel.组件物料号); + if (p_excel.BOM版本 != _ReturnRelust) + { + ErrorList.Add(string.Format("物料号码{0}的BOM版本号填写错误", p_excel.物料号码)); + } + var price = db.TB_NetPrice.Count(p => p.PartCode == p_excel.物料号码 && p.VendId == p_excel.供应商编号 && p.EndTime > DateTime.Now); + if (price == 0) + { + ErrorList.Add(string.Format("物料号码{0}不存在净价", p_excel.物料号码)); + } + var _count1 = db.TA_PART.Count(p => p.PartCode == p_excel.物料号码); + if (_count1 == 0) + { + ErrorList.Add(string.Format("物料号码{0}不存在!", p_excel.物料号码)); + } + if (_count1 > 0) + { + var _part = db.TA_PART.SingleOrDefault(p => p.PartCode == p_excel.物料号码); + if (_part.PartCode.ToString() != p_excel.物料号码.ToString()) + { + ErrorList.Add(string.Format("物料号码{0}填写不正确请注意大小写和空格!", p_excel.物料号码)); + } + if (_part.Unit.ToString() != p_excel.单位.ToString()) + { + ErrorList.Add(string.Format("物料号码{0}单位填写不正确,请注意大小写!", p_excel.物料号码)); + } + var _part5 = db.TA_PART.SingleOrDefault(p => p.PartCode == p_excel.组件物料号); + if (_part5.PartCode.ToString() != p_excel.组件物料号.ToString()) + { + ErrorList.Add(string.Format("组件物料号码{0}填写不正确请注意大小写和空格!", p_excel.组件物料号)); + } + if (_part5.Unit.ToString() != p_excel.组件计量单位.ToString()) + { + ErrorList.Add(string.Format("组件物料号{0}计量单位填写不正确,请注意大小写!", p_excel.组件物料号)); + } + var _Unit = db.TA_PART.Count(p => p.PartCode == p_excel.物料号码 && p.Unit == p_excel.单位); + if (_Unit == 0) + { + ErrorList.Add(string.Format("物料号码{0}单位填写不正确!", p_excel.物料号码)); + } + var _Unit1 = db.TA_PART.Count(p => p.PartCode == p_excel.组件物料号 && p.Unit == p_excel.组件计量单位); + if (_Unit1 == 0) + { + ErrorList.Add(string.Format("组件物料号{0}组件计量单位填写不正确!", p_excel.组件物料号)); + } + + + if (decimal.Parse(_part.Remark) <= 0) + { + ErrorList.Add(string.Format("物料号码没有标准价格!", p_excel.物料号码)); + } + } + + + var _count3 = db.TA_PART.Count(p => p.PartCode == p_excel.组件物料号); + if (_count3 == 0) + { + ErrorList.Add(string.Format("组件物料号{0}不存在!", p_excel.组件物料号)); + } + + var _count2 = db.TA_VENDER.Count(p => p.VendId == p_excel.供应商编号); + if (_count2 == 0) + { + ErrorList.Add(string.Format("供应商{0}不存在!", p_excel.供应商编号)); + } + if (_count2 > 0) + { + var _countvend = db.TA_VENDER.SingleOrDefault(p => p.VendId == p_excel.供应商编号); + if (_countvend.VendId != p_excel.供应商编号) + { + ErrorList.Add(string.Format("供应商编号{0}不正确!", p_excel.供应商编号)); + } + } + + var _count7 = db.TA_PurchasGroup.Count(p => p.PurchasingGroup == p_excel.采购组 && p.ChineseName == p_excel.采购员); + if (_count7 == 0) + { + ErrorList.Add(string.Format("采购组{0}不存在!", p_excel.采购组)); + } + if (_count7 > 0) + { + var _count9 = db.TA_PurchasGroup.SingleOrDefault(p => p.PurchasingGroup == p_excel.采购组 && p.ChineseName == p_excel.采购员 && p.ChineseName == p_excel.采购员); + if(_count9.PurchasingGroup.ToString() != p_excel.采购组.ToString()) + { + ErrorList.Add(string.Format("采购组{0}填写错误,请注意大小写!", p_excel.采购组)); + } + } + + var _count8 = db.TA_StorageLocation.Count(p => p.StLocation == p_excel.存储地点); + if (_count8 == 0) + { + ErrorList.Add(string.Format("存储地点{0}不存在!", p_excel.存储地点)); + } + if (_count8 > 0) + { + var _count10= db.TA_StorageLocation.SingleOrDefault(p => p.StLocation == p_excel.存储地点); + if (_count10.StLocation.ToString()!= p_excel.存储地点.ToString()) + { + ErrorList.Add(string.Format("存储地点{0}填写错误,请注意大小写!", p_excel.存储地点)); + } + } + + if ( + string.IsNullOrEmpty(p_excel.订单创建时间) || + //string.IsNullOrEmpty(p_excel.零件号) || + string.IsNullOrEmpty(p_excel.采购员) || + string.IsNullOrEmpty(p_excel.采购组) || + string.IsNullOrEmpty(p_excel.采购员电话) || + string.IsNullOrEmpty(p_excel.单位) || + string.IsNullOrEmpty(p_excel.组件计量单位) || + string.IsNullOrEmpty(p_excel.组件物料号) || + string.IsNullOrEmpty(p_excel.存储地点)|| + string.IsNullOrEmpty(p_excel.组件数量)) + + { + ErrorList.Add(string.Format("零件名称{0}有填写为空!", p_excel.零件号)); + } + + return ErrorList; + + + } + /// + /// 本特勒订单导入检查 + /// + /// + /// + /// + private static List CheckExcelMode_BTL(ScpEntities db, SCP_PO_EXPORT_IMPORT_MODEL p_excel) + { + List ErrorList = new List(); + var _count = db.TA_Appliance.Count(p => p.PartNumber == p_excel.零件号 && p.VendID == p_excel.供应商编号); + if (_count == 0) + { + ErrorList.Add(string.Format("零件号码{0}与供应商{1}没有对应的基础信息!", p_excel.零件号, p_excel.供应商编号)); + } + BomVersion1.JsonService bomVersionRe = new BomVersion1.JsonService(); + var _ReturnRelust = bomVersionRe.GetBomVersion(p_excel.物料号码, p_excel.组件物料号); + if (p_excel.BOM版本 != _ReturnRelust) + { + ErrorList.Add(string.Format("物料号码{0}的BOM版本号填写错误", p_excel.物料号码)); + } + var price = db.TB_NetPrice.Count(p => p.PartCode == p_excel.物料号码 && p.VendId == p_excel.供应商编号 && p.EndTime > DateTime.Now); + if (price == 0) + { + ErrorList.Add(string.Format("物料号码{0}不存在净价", p_excel.物料号码)); + } + var _count1 = db.TA_PART.Count(p => p.PartCode == p_excel.物料号码); + if (_count1 == 0) + { + ErrorList.Add(string.Format("物料号码{0}不存在!", p_excel.物料号码)); + } + if (_count1 > 0) + { + var _part = db.TA_PART.SingleOrDefault(p => p.PartCode == p_excel.物料号码); + if (_part.PartCode.ToString() != p_excel.物料号码.ToString()) + { + ErrorList.Add(string.Format("物料号码{0}填写不正确请注意大小写和空格!", p_excel.物料号码)); + } + if (_part.Unit.ToString() != p_excel.单位.ToString()) + { + ErrorList.Add(string.Format("物料号码{0}单位填写不正确,请注意大小写!", p_excel.物料号码)); + } + var _zjpart = db.TA_PART.Count(p => p.PartCode == p_excel.组件物料号); + { + if (_zjpart == 0) + { + ErrorList.Add(string.Format("组件物料号码{0}不存在!", p_excel.物料号码)); + } + else + { + var _part5 = db.TA_PART.SingleOrDefault(p => p.PartCode == p_excel.组件物料号); + if (_part5.PartCode.ToString() != p_excel.组件物料号.ToString()) + { + ErrorList.Add(string.Format("组件物料号码{0}填写不正确请注意大小写和空格!", p_excel.组件物料号)); + } + if (_part5.Unit.ToString() != p_excel.组件计量单位.ToString()) + { + ErrorList.Add(string.Format("组件物料号{0}计量单位填写不正确,请注意大小写!", p_excel.组件物料号)); + } + } + } + + var _Unit = db.TA_PART.Count(p => p.PartCode == p_excel.物料号码 && p.Unit == p_excel.单位); + if (_Unit == 0) + { + ErrorList.Add(string.Format("物料号码{0}单位填写不正确!", p_excel.物料号码)); + } + var _Unit1 = db.TA_PART.Count(p => p.PartCode == p_excel.组件物料号 && p.Unit == p_excel.组件计量单位); + if (_Unit1 == 0) + { + ErrorList.Add(string.Format("组件物料号{0}组件计量单位填写不正确!", p_excel.组件物料号)); + } + + + if (decimal.Parse(_part.Remark) <= 0) + { + ErrorList.Add(string.Format("物料号码没有标准价格!", p_excel.物料号码)); + } } - //if (_count == 0) + + + //var _count3 = db.TA_PART.Count(p => p.PartCode == p_excel.组件物料号); + //if (_count3 == 0) //{ - // ErrorList.Add(string.Format("分组【{2}】零件名称【{0}】行号【{1}】不存在!", p_excel.零件号, p_excel.行号, p_excel.订单编号)); + // ErrorList.Add(string.Format("组件物料号{0}不存在!", p_excel.组件物料号)); //} + + var _count2 = db.TA_VENDER.Count(p => p.VendId == p_excel.供应商编号); + if (_count2 == 0) + { + ErrorList.Add(string.Format("供应商{0}不存在!", p_excel.供应商编号)); + } + if (_count2 > 0) + { + var _countvend = db.TA_VENDER.SingleOrDefault(p => p.VendId == p_excel.供应商编号); + if (_countvend.VendId != p_excel.供应商编号) + { + ErrorList.Add(string.Format("供应商编号{0}不正确!", p_excel.供应商编号)); + } + } + + var _count7 = db.TA_PurchasGroup.Count(p => p.PurchasingGroup == p_excel.采购组 && p.ChineseName == p_excel.采购员); + if (_count7 == 0) + { + ErrorList.Add(string.Format("采购组{0}不存在!", p_excel.采购组)); + } + if (_count7 > 0) + { + var _count9 = db.TA_PurchasGroup.SingleOrDefault(p => p.PurchasingGroup == p_excel.采购组 && p.ChineseName == p_excel.采购员 && p.ChineseName == p_excel.采购员); + if (_count9.PurchasingGroup.ToString() != p_excel.采购组.ToString()) + { + ErrorList.Add(string.Format("采购组{0}填写错误,请注意大小写!", p_excel.采购组)); + } + } + + var _count8 = db.TA_StorageLocation.Count(p => p.StLocation == p_excel.存储地点); + if (_count8 == 0) + { + ErrorList.Add(string.Format("存储地点{0}不存在!", p_excel.存储地点)); + } + if (_count8 > 0) + { + var _count10 = db.TA_StorageLocation.SingleOrDefault(p => p.StLocation == p_excel.存储地点); + if (_count10.StLocation.ToString() != p_excel.存储地点.ToString()) + { + ErrorList.Add(string.Format("存储地点{0}填写错误,请注意大小写!", p_excel.存储地点)); + } + } + + if ( + string.IsNullOrEmpty(p_excel.订单创建时间) || + //string.IsNullOrEmpty(p_excel.零件号) || + string.IsNullOrEmpty(p_excel.采购员) || + string.IsNullOrEmpty(p_excel.采购组) || + string.IsNullOrEmpty(p_excel.采购员电话) || + string.IsNullOrEmpty(p_excel.单位) || + string.IsNullOrEmpty(p_excel.组件计量单位) || + string.IsNullOrEmpty(p_excel.组件物料号) || + string.IsNullOrEmpty(p_excel.存储地点) || + string.IsNullOrEmpty(p_excel.组件数量)) + + { + ErrorList.Add(string.Format("零件名称{0}有填写为空!", p_excel.零件号)); + } + return ErrorList; + + + } + /// + /// 富维多组件订单导入效验 + /// + /// + /// + /// + private static List CheckExcelMode_Multicomponent(ScpEntities db, SCP_PO_EXPORT_IMPORT_MODEL p_excel,bool wmsweb) + { + List ErrorList = new List(); + if (wmsweb == false) { + BomList.JsonService bomVersionRe = new BomList.JsonService(); + var _ReturnRelust = bomVersionRe.GetBomsByVer(p_excel.物料号码, p_excel.BOM版本); + if (!_ReturnRelust.Contains("Qty")) + { + ErrorList.Add(string.Format("不存在物料号为{0},版本号为{1}的数据", p_excel.物料号码, p_excel.BOM版本)); + } + } + else + { + BomList1.JsonService bomVersionRe = new BomList1.JsonService(); + var _ReturnRelust = bomVersionRe.GetBomsByVer(p_excel.物料号码, p_excel.BOM版本); + if (!_ReturnRelust.Contains("Qty")) + { + ErrorList.Add(string.Format("不存在物料号为{0},版本号为{1}的数据", p_excel.物料号码, p_excel.BOM版本)); + } + } + + var _count = db.TA_Appliance.Count(p => p.PartNumber == p_excel.零件号 && p.VendID == p_excel.供应商编号); + if (_count == 0) + { + ErrorList.Add(string.Format("零件号码{0}与供应商{1}没有对应的基础信息!", p_excel.零件号, p_excel.供应商编号)); + } + + + //var price = db.TB_NetPrice.Count(p => p.PartCode == p_excel.物料号码 && p.VendId == p_excel.供应商编号 && p.EndTime > DateTime.Now); + //if (price == 0) + //{ + // ErrorList.Add(string.Format("物料号码{0}不存在净价", p_excel.物料号码)); + //} + var _count1 = db.TA_PART.Count(p => p.PartCode == p_excel.物料号码); + if (_count1 == 0) + { + ErrorList.Add(string.Format("物料号码{0}不存在!", p_excel.物料号码)); + } + if (_count1 > 0) + { + var _part = db.TA_PART.SingleOrDefault(p => p.PartCode == p_excel.物料号码); + if (_part.PartCode.ToString() != p_excel.物料号码.ToString()) + { + ErrorList.Add(string.Format("物料号码{0}填写不正确请注意大小写和空格!", p_excel.物料号码)); + } + if (_part.Unit.ToString() != p_excel.单位.ToString()) + { + ErrorList.Add(string.Format("物料号码{0}单位填写不正确,请注意大小写!", p_excel.物料号码)); + } + + var _Unit = db.TA_PART.Count(p => p.PartCode == p_excel.物料号码 && p.Unit == p_excel.单位); + if (_Unit == 0) + { + ErrorList.Add(string.Format("物料号码{0}单位填写不正确!", p_excel.物料号码)); + } + + + if (decimal.Parse(_part.Remark) <= 0) + { + ErrorList.Add(string.Format("物料号码没有标准价格!", p_excel.物料号码)); + } + } + + var _count2 = db.TA_VENDER.Count(p => p.VendId == p_excel.供应商编号); + if (_count2 == 0) + { + ErrorList.Add(string.Format("供应商{0}不存在!", p_excel.供应商编号)); + } + if (_count2 > 0) + { + var _countvend = db.TA_VENDER.SingleOrDefault(p => p.VendId == p_excel.供应商编号); + if (_countvend.VendId != p_excel.供应商编号) + { + ErrorList.Add(string.Format("供应商编号{0}不正确!", p_excel.供应商编号)); + } + } + + var _count7 = db.TA_PurchasGroup.Count(p => p.PurchasingGroup == p_excel.采购组 && p.ChineseName == p_excel.采购员); + if (_count7 == 0) + { + ErrorList.Add(string.Format("采购组{0}不存在!", p_excel.采购组)); + } + if (_count7 > 0) + { + var _count9 = db.TA_PurchasGroup.SingleOrDefault(p => p.PurchasingGroup == p_excel.采购组 && p.ChineseName == p_excel.采购员 && p.ChineseName == p_excel.采购员); + if (_count9.PurchasingGroup.ToString() != p_excel.采购组.ToString()) + { + ErrorList.Add(string.Format("采购组{0}填写错误,请注意大小写!", p_excel.采购组)); + } + } + + var _count8 = db.TA_StorageLocation.Count(p => p.StLocation == p_excel.存储地点); + if (_count8 == 0) + { + ErrorList.Add(string.Format("存储地点{0}不存在!", p_excel.存储地点)); + } + if (_count8 > 0) + { + var _count10 = db.TA_StorageLocation.SingleOrDefault(p => p.StLocation == p_excel.存储地点); + if (_count10.StLocation.ToString() != p_excel.存储地点.ToString()) + { + ErrorList.Add(string.Format("存储地点{0}填写错误,请注意大小写!", p_excel.存储地点)); + } + } + + if ( + string.IsNullOrEmpty(p_excel.订单创建时间) || + string.IsNullOrEmpty(p_excel.零件号) || + string.IsNullOrEmpty(p_excel.采购员) || + string.IsNullOrEmpty(p_excel.采购组) || + string.IsNullOrEmpty(p_excel.采购员电话) || + string.IsNullOrEmpty(p_excel.单位) || + string.IsNullOrEmpty(p_excel.存储地点)) + + { + ErrorList.Add(string.Format("零件名称{0}有填写为空!", p_excel.零件号)); + } + + return ErrorList; + + + } + /// + /// 富维冲压件大订单效验 + /// + /// + /// + /// + private static List CheckExcelMode_MAXPO(ScpEntities db, SCP_MAXPO_EXPORT p_excel) + { + List ErrorList = new List(); + + var _count1 = db.TA_PART.Count(p => p.PartCode == p_excel.零件号); + if (_count1 == 0) + { + ErrorList.Add(string.Format("零件号{0}不存在!", p_excel.零件号)); + } + var _count = db.TA_PART.Count(p => p.PartCode == p_excel.原材物料号); + if (_count == 0) + { + ErrorList.Add(string.Format("原材物料号{0}不存在!", p_excel.原材物料号)); + } + var _count2 = db.TA_VENDER.Count(p => p.VendId == p_excel.供应商编号); + if (_count2 == 0) + { + ErrorList.Add(string.Format("供应商{0}不存在!", p_excel.供应商编号)); + } + if (_count2 > 0) + { + var _countvend = db.TA_VENDER.FirstOrDefault(p => p.VendId == p_excel.供应商编号); + if (_countvend.VendId != p_excel.供应商编号) + { + ErrorList.Add(string.Format("供应商编号{0}不正确!", p_excel.供应商编号)); + } + } + + BomList1.JsonService bomVersionRe = new BomList1.JsonService(); + var _ReturnRelust = bomVersionRe.GetBom(p_excel.零件号, p_excel.原材物料号); + if (_ReturnRelust == "[null]") + { + ErrorList.Add(string.Format("零件号{0}与原材物料号{1}不存在BOM关系!", p_excel.零件号, p_excel.原材物料号)); + } + if ( + string.IsNullOrEmpty(p_excel.零件号) || + string.IsNullOrEmpty(p_excel.原材物料号) || + string.IsNullOrEmpty(p_excel.供应商编号)) + + { + ErrorList.Add(string.Format("零件名称{0}有填写为空!", p_excel.零件号)); + } + + return ErrorList; + + + } + /// + /// 北京安通林 + /// + /// + /// + /// + /// + /// + /// + public static ResultObject EXCEL_PO_TO_ASK_MOD(List p_order_list, string p_creator, string p_buyer, DateTime p_time, BillModType p_modtype, bool IsAutoPublish = false) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + p_order_list.ForEach(p => + { + if (string.IsNullOrEmpty(p.订单数)) + { + p.订单数 = "0"; + } + }); + + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list.Where(p => p.订单数 != "0").ToList(); + _lst.ForEach + (p => + { + var _ls = CheckExcelMode(db, p); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + var VenderList = _lst.Select(p => p.供应商编码).Distinct(); + var PartCodeList = _lst.Select(p => p.零件编码).Distinct(); + var OrderList = _lst.GroupBy(p => p.订单编号).ToList(); + OrderList.ForEach((p) => + { + var list = p.ToList(); + if (list.Count > 0) + { + var _entity = list.FirstOrDefault(); + TB_ASK _ask = new TB_ASK(); + _ask.AskBillNum = SCP_BILLCODE_CONTROLLER.MakeASKCode(); + _ask.VendId = _entity.供应商编码; + _ask.State = (int)AskState.New; + _ask.PoBillNum = _entity.订单编号; + _ask.ModType = (int)BillModType.Contract; + _ask.Site = _entity.域名; + _ask.Remark = _entity.站点; + if (IsAutoPublish) + { + _ask.State = (int)AskState.Release; + } + else + { + _ask.State = (int)AskState.New; + } + _ask.BeginTime = DateTime.Parse(_entity.订货日期); + _ask.Buyer = p_buyer; + _ask.BuyerPhone = _entity.计划员电话; + _ask.ErpBillNum = _entity.项目编号; + _ask.EndTime = DateTime.Parse(_entity.到货日期); + _ask.CreateTime = DateTime.Now; + _ask.CreateUser = p_creator; + _ask.VendId = _entity.供应商编码; + _ask.GUID = Guid.NewGuid(); + _ask.ReceivedPort = _entity.收货口; + _ask.IsDeleted = false; + db.TB_ASK.Add(_ask); + #region 供应商新任务代办接口 + TB_PENING_ITEMS _item = new TB_PENING_ITEMS(); + _item.ROLE_NAME = "供应商"; + _item.ITEM_NO = _ask.AskBillNum; + _item.ITEM_CONTENT = "要货看盘有信息"; + _item.ITEM_TYPE = (int)PENDING_MESSAGE_TYPE.NEW_ASK; + _item.VEND_ID = _ask.VendId; + _item.ITEM_STATE = (int)PENDING_STATE.WAITING; + _item.SENDER = p_buyer; + _item.SENDING_TIME = DateTime.Now; + db.TB_PENING_ITEMS.Add(_item); + #endregion + // int _number = 1; + List _ls = new List(); + list.ForEach((itm) => + { + var _number = _ls.Count(p1 => p1.PoBillNum == _ask.PoBillNum + && p1.PoLine == Int32.Parse(itm.行号) && p1.PartCode == itm.零件编码 && itm.域名 == p1.Remark); + if (_number > 0) + { + _ret.MessageList.Add(string.Format("已经存在订单为{0}行号为{1}零件编码为{2}", itm.订单编号, itm.行号, itm.零件编码)); + } + + TB_ASK_DETAIL _t_ASK_Detail = new TB_ASK_DETAIL(); + + _t_ASK_Detail.PoLine = Int32.Parse(itm.行号); + _t_ASK_Detail.Currency = itm.币种; + _t_ASK_Detail.AskBillNum = _ask.AskBillNum; + _t_ASK_Detail.PoBillNum = _ask.PoBillNum; + _t_ASK_Detail.PoUnit = itm.单位; + _t_ASK_Detail.CreateTime = DateTime.Now; + _t_ASK_Detail.CreateUser = _ask.CreateUser; + _t_ASK_Detail.PartCode = itm.零件编码; + _t_ASK_Detail.BeginTime = DateTime.Parse(itm.订货日期); + _t_ASK_Detail.EndTime = DateTime.Parse(itm.到货日期); + _t_ASK_Detail.TempQty = decimal.Parse(itm.订单数); + _t_ASK_Detail.AskQty = decimal.Parse(itm.订单数); + _t_ASK_Detail.IsDeleted = false; + _t_ASK_Detail.LocUnit = itm.单位; + _t_ASK_Detail.UnConv = 1; + _t_ASK_Detail.DockCode = itm.收货口; + _t_ASK_Detail.State = _ask.State; + _t_ASK_Detail.Price = string.IsNullOrEmpty(itm.价格) ? 0 : decimal.Parse(itm.价格); + _t_ASK_Detail.GUID = Guid.NewGuid(); + _t_ASK_Detail.Remark = _ask.Site; + _t_ASK_Detail.UpdateInfo = itm.备注; + db.TB_ASK_DETAIL.Add(_t_ASK_Detail); + _ls.Add(_t_ASK_Detail); + // _number++; + }); + } + else + { + _ret.MessageList.Add("ERP订单编号已存在,请重新导入!"); + + } + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + ); + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + + } + /// + /// 供应商零件导入 + /// + /// + /// + /// + /// + public static ResultObject EXCEL_VENDER_PART_MOD(List p_order_list, string site, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + _lst.ForEach(p => + { + var _count = _lst.Count(itm => itm.供应商代码 == p.供应商代码 && itm.零件号 == p.零件号); + if (_count > 1) + { + lineError.Add(string.Format("导入的供应商{0}零件编号{1}有重复", p.供应商代码, p.零件号)); + ErrorList = lineError; + } + }); + _lst.ForEach(p => + { + var _ls = CheckExcelMode_VenderPart(db, p, site); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + _lst.ForEach(p => + { + var _venderpart = db.TA_VEND_PART.SingleOrDefault(t => t.VendId == p.供应商代码.ToUpper() && t.PartCode == p.零件号.ToUpper()) ?? + new TA_VEND_PART + { + VendId = p.供应商代码.ToUpper(), + PartCode = p.零件号.ToUpper(), + State = 1, + CreateTime = DateTime.Now, + CreateUser = p_creator, + IsDeleted = false, + GUID = System.Guid.NewGuid(), + }; + _venderpart.VendPartCode = p.供应商零件号.ToUpper(); + _venderpart.VendPackQty = decimal.Parse(p.标包数); + _venderpart.MinPackQty = decimal.Parse(p.小包装数); + _venderpart.PalletPackQty = decimal.Parse(p.托盘包装数); + _venderpart.PoUnit = p.单位; + _venderpart.Remark = ""; + _venderpart.UpdateTime = DateTime.Now; + _venderpart.UpdateUser = p_creator; + _venderpart.Site = site; + db.TA_VEND_PART.AddOrUpdate(_venderpart); + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 零件器具导入 + /// + /// + /// + /// + /// + public static ResultObject EXCEL_VENDER_PART_MOD1(List p_order_list, string site, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + _lst.ForEach(p => + { + var _count = _lst.Count(itm => itm.零件号码 == p.零件号码 && itm.供应商代码==p.供应商代码); + if (_count > 1) + { + lineError.Add(string.Format("零件号码有重复", p.零件号码)); + ErrorList = lineError; + } + }); + _lst.ForEach(p => + { + var _ls = CheckExcelMode_VenderPart1(db, p, site); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + _lst.ForEach(p => + { + + var _partdes = db.TA_Appliance.Count(t => t.PartNumber == p.零件号码 && t.VendID == p.供应商代码); + if (_partdes == 0) + { + TA_Appliance _entity = new TA_Appliance(); + _entity.PartNumber = p.零件号码; + _entity.PackNumber = decimal.Parse(p.标包数); + _entity.PartDesc1 = p.零件描述; + _entity.ReciteNumber = p.背番号; + _entity.SufanLand = p.所番地; + _entity.BoxType = p.箱种; + _entity.PostEngineering = p.后工程; + _entity.PartNumber = p.零件号码; + + _entity.Texture = p.材质; + _entity.Model = p.车型; + _entity.ReceivingPort = p.收货口; + _entity.VendID = p.供应商代码; + db.TA_Appliance.Add(_entity); + + } + else + { + var _partde = db.TA_Appliance.SingleOrDefault(t => t.PartNumber == p.零件号码 && t.VendID == p.供应商代码); + + _partde.PackNumber = decimal.Parse(p.标包数); + _partde.PartDesc1 = p.零件描述; + _partde.Model = p.车型; + _partde.ReciteNumber = p.背番号; + _partde.SufanLand = p.所番地; + _partde.BoxType = p.箱种; + _partde.PostEngineering = p.后工程; + _partde.PartNumber = p.零件号码; + + _partde.Texture = p.材质; + _partde.ReceivingPort = p.收货口; + + db.TA_Appliance.AddOrUpdate(_partde); + } + + + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + + /// + /// 本特勒收货信息导入 + /// + /// + /// + /// + /// + public static ResultObject EXCEL_TA_RECEIVING(List p_order_list, string site, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + + _lst.ForEach(p => + { + var _ls = CheckExcelMode_Receiving(db, p, site); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + _lst.ForEach(p => + { + + var _partdes = db.TA_Receiving_Information.Count(t => t.Shift == p.班次); + if (_partdes == 0) + { + TA_Receiving_Information _entity = new TA_Receiving_Information(); + + _entity.Shift = p.班次; + _entity.Name = p.收货人; + _entity.Phone = p.收货人电话; + db.TA_Receiving_Information.Add(_entity); + + } + else + { + var _partde = db.TA_Receiving_Information.FirstOrDefault(t => t.Shift == p.班次); + + + _partde.Name = p.收货人; + _partde.Phone = p.收货人电话; + db.TA_Receiving_Information.AddOrUpdate(_partde); + } + + + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 子零件导入 + /// + /// + /// + /// + /// + public static ResultObject EXCEL_VENDER_PART_MOD2(List p_order_list, string site, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + _lst.ForEach(p => + { + var _count = _lst.Count(itm => itm.零件号 == p.零件号); + if (_count > 1) + { + lineError.Add(string.Format("零件号有重复", p.零件号)); + ErrorList = lineError; + } + }); + _lst.ForEach(p => + { + var _ls = CheckExcelMode_CousmterPart1(db, p, site); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + _lst.ForEach(p => + { + + var _coustomerpart = db.TA_SubPart.Count(t => t.PartCode == p.零件号.ToUpper()); + if (_coustomerpart == 0) + { + TA_SubPart subpa = new TA_SubPart(); + subpa.SubPart = p.客户零件号; + subpa.PartCode = p.零件号; + db.TA_SubPart.AddOrUpdate(subpa); + } + else + { + var subpa = db.TA_SubPart.FirstOrDefault(t => t.PartCode == p.零件号.ToUpper()); + subpa.SubPart = p.客户零件号; + db.TA_SubPart.AddOrUpdate(subpa); + } + + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 采购组导入 + /// + /// + /// + /// + /// + public static ResultObject EXCEL_VENDER_PART_MOD4(List p_order_list, string site, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + + _lst.ForEach(p => + { + var _ls = CheckExcelMode_PurchasingGroup(db, p, site); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + _lst.ForEach(p => + { + + var _venderpart = db.TA_PurchasGroup.SingleOrDefault(t => t.PurchasingGroup == p.采购组.ToUpper() && t.ChineseName == p.中文名称.ToUpper()) ?? + new TA_PurchasGroup + { + PurchasingGroup = p.采购组.ToUpper(), + ChineseName = p.中文名称.ToUpper(), + Describe=p.描述.ToUpper(), + }; + //_venderpart.Model = p.车型.ToUpper(); + db.TA_PurchasGroup.AddOrUpdate(_venderpart); + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 存储地点导入 + /// + /// + /// + /// + /// + public static ResultObject EXCEL_VENDER_PART_MOD5(List p_order_list, string site, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + + //_lst.ForEach(p => + //{ + // var _ls = CheckExcelMode_Sort(db, p, site); + // if (_ls.Count > 0) + // { + // lineError.Add(number.ToString()); + // ErrorList.Add(string.Join("
", _ls.ToArray())); + // } + // number++; + //}); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + _lst.ForEach(p => + { + + var _venderpart = db.TA_StorageLocation.SingleOrDefault(t => t.StLocation == p.存储地点.ToUpper() && t.Arrangement == p.层次.ToUpper()) ?? + new TA_StorageLocation + { + StLocation = p.存储地点.ToUpper(), + Arrangement = p.层次.ToUpper(), + Leveldescription = p.层次描述.ToUpper(), + Describe = p.描述.ToUpper(), + Inventoryation = p.存货标识.ToUpper(), + }; + //_venderpart.Model = p.车型.ToUpper(); + db.TA_StorageLocation.AddOrUpdate(_venderpart); + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 品番导入 + /// + /// + /// + /// + /// + public static ResultObject EXCEL_VENDER_PART_MOD6(List p_order_list, string site, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + + _lst.ForEach(p => + { + var _ls = CheckExcelMode_Sort(db, p, site); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + _lst.ForEach(p => + { + + var _venderpart = db.TA_PinFan.SingleOrDefault(t => t.PartCode == p.品番.ToUpper() ) ?? + new TA_PinFan + { + PartCode = p.品番.ToUpper(), + Barcodnt = p.条码内容.ToUpper(), + Identification = p.Code39条码.ToUpper(), + }; + //_venderpart.Model = p.车型.ToUpper(); + db.TA_PinFan.AddOrUpdate(_venderpart); + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 箱种导入 + /// + /// + /// + /// + /// + public static ResultObject EXCEL_Box_Type(List p_order_list, string site, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + + _lst.ForEach(p => + { + var _ls = CheckExcelMode_Box(db, p, site); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + var _count = _lst.Count(itm => itm.箱种 == p.箱种); + if (_count > 1) + { + lineError.Add(string.Format("箱种有重复", p.箱种)); + ErrorList = lineError; + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + _lst.ForEach(p => + { + + var _boxtype = db.TA_BOXTYPE.SingleOrDefault(t => t.BoxType == p.箱种.ToUpper()) ?? + new TA_BOXTYPE + { + BoxType = p.箱种 + + }; + _boxtype.CreateTime = DateTime.Now; + _boxtype.CreateUser = p_creator; + _boxtype.Enabled = p.打印托盘码 == "是" ? true : false; + db.TA_BOXTYPE.AddOrUpdate(_boxtype); + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 本特勒车型导入 + /// + /// + /// + /// + /// + public static ResultObject EXCEL_Car_Model(List p_order_list, string site, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + + _lst.ForEach(p => + { + var _ls = CheckExcel_Model(db, p, site); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + + }); + _lst.ForEach(p => + { + var _count = _lst.Count(itm => itm.车型 == p.车型); + if (_count > 1) + { + lineError.Add(string.Format("车型【{0}】有重复", p.车型)); + ErrorList = lineError; + } + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + _lst.ForEach(p => + { + TA_CarModel Car = new TA_CarModel(); + Car.Model = p.车型; + + db.TA_CarModel.AddOrUpdate(Car); + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + public static ResultObject EXCEL_VENDER_PART_MOD3(List p_order_list, string site, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + //_lst.ForEach(p => + //{ + // var _count = _lst.Count(itm => itm.零件号 == p.零件号); + // if (_count > 1) + // { + // lineError.Add(string.Format("零件编号有重复", p.零件号)); + // ErrorList = lineError; + // } + //}); + _lst.ForEach(p => + { + var _ls = CheckExcelMode_VenderPart1(db, p, site); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + _lst.ForEach(p => + { + + var _venderpart = db.TA_ProductionLine.SingleOrDefault(t => t.ProductionLine == p.产线.ToUpper() && t.PartCode == p.零件号.ToUpper()) ?? + new TA_ProductionLine + { + ProductionLine = p.产线.ToUpper(), + PartCode = p.零件号.ToUpper(), + + }; + //_venderpart.Model = p.车型.ToUpper(); + db.TA_ProductionLine.AddOrUpdate(_venderpart); + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 供应商导入 + /// + /// + /// + /// + /// + public static ResultObject EXCEL_VENDER_MOD(List p_order_list, string site, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + _lst.ForEach(p => + { + var _count = _lst.Count(itm => itm.供应商编号 == p.供应商编号); + if (_count > 1) + { + lineError.Add(string.Format("导入零件编号{0}有重复", p.供应商编号)); + ErrorList = lineError; + } + }); + _lst.ForEach(p => + { + var _ls = CheckExcelMode_Vender(db, p, site); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + _lst.ForEach(p => + { + var _vender = db.TA_VENDER.SingleOrDefault(t => t.VendId == p.供应商编号.ToUpper()) ?? + new TA_VENDER { VendId = p.供应商编号.ToUpper(), State = 1 }; + _vender.VendName = p.供应商名称; + _vender.VendAbbCode = string.IsNullOrEmpty(p.供应商缩写) ? "0" : p.供应商缩写; + _vender.VendType = p.供应商类型; + _vender.Country = p.国家; + _vender.City = p.城市; + _vender.Currency = p.币种; + _vender.Address = p.地址; + _vender.ZipCode = p.邮编; + _vender.Contacter = p.联系人; + _vender.Phone = p.电话; + _vender.Fax = p.传真; + _vender.Remark = p.备注; + _vender.Tax = Convert.ToDecimal(p.税率); + _vender.Site = site; + db.TA_VENDER.AddOrUpdate(_vender); + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 价格导入 + /// + /// + /// + /// + /// + public static ResultObject EXCEL_PRICE_MOD(List p_order_list, string site, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + _lst.ForEach + (p => + { + var _ls = CheckExcelMode_Price(db, p, site); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + + + + + + _lst.ForEach(p => + { + var _price = new TB_PRICE(); + _price.VendId = p.供应商编号.Trim(); + _price.PartCode = p.零件编码.Trim(); + _price.StartTime = DateTime.Parse(p.开始时间); + _price.EndTime = DateTime.Parse(p.结束时间); + _price.Curr = p.币种; + _price.Unit = p.单位; + _price.Amt = decimal.Parse(p.价格); + _price.Site = site.Trim(); + _price.Remarks = p.备注; + db.TB_PRICE.Add(_price); + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PRICE_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PRICE_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PRICE_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PRICE_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 零件导入 + /// + /// + /// + /// + /// + public static ResultObject EXCEL_PART_MOD(List p_order_list, string site, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + _lst.ForEach(p => + { + var _count = _lst.Count(itm => itm.零件编号 == p.零件编号); + if (_count > 1) + { + lineError.Add(string.Format("导入零件编号{0}有重复", p.零件编号)); + ErrorList = lineError; + } + }); + _lst.ForEach + (p => + { + var _ls = CheckExcelMode_Part(db, p, site); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + _lst.ForEach(p => + { + var _part = db.TA_PART.SingleOrDefault(t => t.PartCode == p.零件编号.ToUpper()) ?? + new TA_PART { PartCode = p.零件编号.ToUpper() }; + _part.PartCode = p.零件编号; + _part.ErpPartCode = p.零件编号; + _part.PartDesc1 = p.零件名称; + _part.PartDesc2 = ""; + _part.ProjectId = p.项目编号; + _part.Unit = p.单位; + _part.PartGroup = p.项目编号; + _part.State = p.状态; + _part.Site = site; + db.TA_PART.AddOrUpdate(_part); + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PART_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PART_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PART_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PART_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 订单导入 + /// + /// + /// + /// + /// + /// + /// + public static ResultObject EXCEL_PO_MOD(List p_order_list, string site, string p_creator, DateTime p_time, PoState p_modtype) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + DataTable ds = new DataTable(); + _lst.ForEach + (p => + { + var _ls = CheckExcelMode_Po(db, p); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + List poList = new List(); + List po_Detail = new List(); + List askList = new List(); + List askDetailList = new List(); + List uniList = new List(); + //先循环找到一个日期的订单 + foreach (DataColumn column in ds.Columns) + { + DateTime date = DateTime.MaxValue; + DateTime.TryParse(column.ColumnName, out date); + + if (date != DateTime.MaxValue) + { + //找到所有日期下订单 + foreach (DataRow dataRow in ds.Rows)//订单分组表 + { + decimal _Qty = 0; + decimal.TryParse(dataRow[column.ColumnName].ToString(), out _Qty); + if (_Qty > 0) + { + //创建主单据及看板 + var _Po = CreatePo1(poList, dataRow, date, p_creator,site); + //创建主单据及看板 + var _PoAsk = CreateAsk1(poList, askList, dataRow, date, p_creator,db,site); + //创建明细 + var _PoDetail = CreatePoDetail1(dataRow, _Qty, db, date, _Po, _PoAsk, p_creator,site); + po_Detail.Add(_PoDetail); + var _Askdetail = CreateAskDetail1(db, dataRow, _Po, _PoAsk, _PoDetail, p_creator,site); + askDetailList.Add(_Askdetail); + var Tsuniapi = CreateTsuniapi1(_Po, _PoAsk, _PoDetail, dataRow, _Askdetail,site); + uniList.Add(Tsuniapi); + } + } + } + } + + var billGroups= poList.GroupBy(p=>new { p.VendId,p.EndTime}); + foreach (var item in billGroups) ; + db.TB_PO.AddRange(poList); + db.TB_ASK.AddRange(askList); + db.TB_PO_DETAIL.AddRange(po_Detail); + db.TB_ASK_DETAIL.AddRange(askDetailList); + db.TS_UNI_API.AddRange(uniList); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + + } + //} + } + + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 富维普通订单导入 + /// + /// + /// + /// + /// + /// + /// + public static ResultObject EXCEL_PO_MOD2(DataTable p_order_list1, List p_order_list, string site, string p_creator, DateTime p_time, PoState p_modtype) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + + _lst.ForEach + (p => + { + var _count = _lst.Count(itm => itm.物料号码 == p.物料号码 && itm.供应商编号 == p.供应商编号); + if (_count > 1) + { + lineError.Add(string.Format("导入的物料号码{0}有重复", p.物料号码)); + ErrorList = lineError; + } + var _ls = CheckExcelMode_Po(db, p); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + + List poList = new List(); + List po_DetailList = new List(); + List askList = new List(); + List askDetailList = new List(); + List uniList = new List(); + //先循环找到一个日期的订单 + foreach (DataColumn column in p_order_list1.Columns) + { + DateTime date = DateTime.MaxValue; + DateTime.TryParse(column.ColumnName, out date); + + if (date != DateTime.MaxValue && date.Year > 2000) + { + //找到所有日期下订单 + foreach (DataRow dataRow in p_order_list1.Rows)//订单分组表 + { + decimal _Qty = 0; + decimal.TryParse(dataRow[column.ColumnName].ToString(), out _Qty); + if (_Qty > 0) + { + // 创建主单据及看板 + var _Po = CreatePo1( poList, dataRow, date, p_creator, site); + // 创建主单据及看板 + var _PoAsk = CreateAsk1(poList, askList, dataRow, date, p_creator,db,site); + //创建明细 + var _PoDetail = CreatePoDetail1(dataRow, _Qty, db, date, _Po, _PoAsk, p_creator,site); + po_DetailList.Add(_PoDetail); + var _Askdetail = CreateAskDetail1(db, dataRow, _Po, _PoAsk, _PoDetail, p_creator,site); + askDetailList.Add(_Askdetail); + var Tsuniapi = CreateTsuniapi1(_Po, _PoAsk, _PoDetail,dataRow, _Askdetail,site); + uniList.Add(Tsuniapi); + } + } + } + } + int cnt = 1; + foreach (var item in poList) + { + + var oldGuid = item.PoBillNum; + + var newBillId = SCP_BILLCODE_CONTROLLER.MakePOCode2();//订单号 + if (item.Site != "W21") + { + newBillId=SCP_BILLCODE_CONTROLLER.MakePOCode4();//订单号 + } + + var newAskNum = SCP_BILLCODE_CONTROLLER.MakeASKCodeByNum(cnt); + + var add_Po = item.Clone(newBillId, item.Site); + db.TB_PO.Add(add_Po); + + var Add_Po_DETAIL = po_DetailList.Where(p => p.PoBillNum == oldGuid).ToList(); + int cntPo_detail = 1; + Add_Po_DETAIL.ForEach(p => p.PoBillNum = newBillId); + Add_Po_DETAIL.ForEach(p => + { + p.PoLine = cntPo_detail; + cntPo_detail++; + }); + db.TB_PO_DETAIL.AddRange(Add_Po_DETAIL); + + var Add_AskList = askList.Where(p => p.PoBillNum == oldGuid).ToList(); + Add_AskList.ForEach(p => p.PoBillNum = newBillId); + Add_AskList.ForEach(p => p.AskBillNum = newAskNum); + Add_AskList.ForEach(p => p.ErpBillNum = newBillId); + db.TB_ASK.AddRange(Add_AskList); + + var Add_ASK_DETAIL = askDetailList.Where(p => p.PoBillNum == oldGuid).ToList(); + Add_ASK_DETAIL.ForEach(p => p.PoBillNum = newBillId); + int cntAsk_detail = 1; + Add_ASK_DETAIL.ForEach(p => p.AskBillNum = newAskNum); + Add_ASK_DETAIL.ForEach(p => + { + p.PoLine = cntAsk_detail; + cntAsk_detail++; + }); + db.TB_ASK_DETAIL.AddRange(Add_ASK_DETAIL); + + var Add_UniList = uniList.Where(p => p.BillNum == oldGuid).ToList(); + int cntTS_detail = 1; + Add_UniList.ForEach(p => + { + p.ErpLineNum = cntTS_detail; + cntTS_detail++; + }); + Add_UniList.ForEach(p => p.BillNum = newBillId); + + db.TS_UNI_API.AddRange(Add_UniList); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + + } + //} + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 富维期货订单导入 + /// + /// + /// + /// + /// + /// + /// + public static ResultObject EXCEL_PO_QH_MOD(DataTable p_order_list1, List p_order_list, string site, string p_creator, DateTime p_time, PoState p_modtype) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + + _lst.ForEach + (p => + { + var _count = _lst.Count(itm => itm.物料号码 == p.物料号码 && itm.供应商编号 == p.供应商编号); + if (_count > 1) + { + lineError.Add(string.Format("导入的物料号码{0}有重复", p.物料号码)); + ErrorList = lineError; + } + var _ls = CheckExcelMode_QH_Po(db, p); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + + List poList = new List(); + List po_DetailList = new List(); + List askList = new List(); + List askDetailList = new List(); + List uniList = new List(); + List consum = new List(); + //先循环找到一个日期的订单 + foreach (DataColumn column in p_order_list1.Columns) + { + DateTime date = DateTime.MaxValue; + DateTime.TryParse(column.ColumnName, out date); + + if (date != DateTime.MaxValue && date.Year > 2000) + { + //找到所有日期下订单 + foreach (DataRow dataRow in p_order_list1.Rows)//订单分组表 + { + decimal _Qty = 0; + decimal.TryParse(dataRow[column.ColumnName].ToString(), out _Qty); + if (_Qty > 0) + { + // 创建主单据及看板 + var _Po = CreatePoQh(poList, dataRow, date, p_creator, site); + // 创建主单据及看板 + var _PoAsk = CreateAsk1(poList, askList, dataRow, date, p_creator, db, site); + //创建明细 + var _PoDetail = CreatePoDetail1Qh(dataRow, _Qty, db, date, _Po, _PoAsk, p_creator, site); + po_DetailList.Add(_PoDetail); + var _Askdetail = CreateAskDetail1(db, dataRow, _Po, _PoAsk, _PoDetail, p_creator, site); + askDetailList.Add(_Askdetail); + var Tsuniapi = CreateTsuniapiQh(_Po, _PoAsk, _PoDetail, dataRow, _Askdetail, site); + uniList.Add(Tsuniapi); + } + } + } + } + var POdetailCount = po_DetailList.GroupBy(t => new { t.PartCode, t.UpdateInfo,t.EndTime }).ToList(); + POdetailCount.ForEach((p) => + { + var _list = p.ToList(); + decimal _PlanQTY = _list.Sum(t => t.PlanQty); + var _ls = _list.First(); + var MaxP = db.TB_MAXPO_DETAIL.Where(t => t.PartCode == _ls.PartCode && t.VendId == _ls.UpdateInfo).Sum(t => t.SurplusQty); + if (_PlanQTY > MaxP) + { + _ret.MessageList.Add(string.Format("物料号{0}大订单总剩余数{1}小于本次要货数{2}", _ls.PartCode, MaxP, _PlanQTY)); + } + else + { + var _MaxpoList = db.TB_MAXPO_DETAIL.Where(t => t.PartCode == _ls.PartCode && t.SurplusQty > 0 && t.VendId == _ls.UpdateInfo).OrderBy(t => t.ContractMonth).ToList(); + foreach (var _maxpo in _MaxpoList) + { + if (_maxpo.SurplusQty > _PlanQTY) + { + _maxpo.SurplusQty = _maxpo.SurplusQty - _PlanQTY; + + db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo); + TB_MAXPO_CONSUME CONSUME = new TB_MAXPO_CONSUME(); + CONSUME.PoBillNum = _maxpo.PoBillNum; + CONSUME.BillNum = _ls.PoBillNum; + CONSUME.PartCode = _ls.PartCode; + CONSUME.VendId = _maxpo.VendId; + CONSUME.PoQty = _PlanQTY; + CONSUME.ShipTime = DateTime.Now; + consum.Add(CONSUME); + break; + } + else if (_maxpo.SurplusQty == _PlanQTY) + { + _maxpo.SurplusQty = 0; + db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo); + TB_MAXPO_CONSUME CONSUME = new TB_MAXPO_CONSUME(); + CONSUME.PoBillNum = _maxpo.PoBillNum; + CONSUME.BillNum = _ls.PoBillNum; + CONSUME.PartCode = _ls.PartCode; + CONSUME.VendId = _maxpo.VendId; + CONSUME.PoQty = _PlanQTY; + CONSUME.ShipTime = DateTime.Now; + consum.Add(CONSUME); + break; + } + else if (_maxpo.SurplusQty < _PlanQTY) + { + TB_MAXPO_CONSUME CONSUME = new TB_MAXPO_CONSUME(); + CONSUME.BillNum = _ls.PoBillNum; + CONSUME.PoBillNum = _maxpo.PoBillNum; + CONSUME.PartCode = _ls.PartCode; + CONSUME.VendId = _maxpo.VendId; + CONSUME.PoQty = _maxpo.SurplusQty; + CONSUME.ShipTime = DateTime.Now; + consum.Add(CONSUME); + _PlanQTY = _PlanQTY - _maxpo.SurplusQty; + _maxpo.SurplusQty = 0; + db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo); + + } + + } + + } + }); + + int cnt = 1; + foreach (var item in poList) + { + + var oldGuid = item.PoBillNum; + + var newBillId = SCP_BILLCODE_CONTROLLER.MakePOCode2();//冲压件订单号生成逻辑 + if (item.Site != "W21") + { + newBillId = SCP_BILLCODE_CONTROLLER.MakePOCode4();//本特勒订单号生成逻辑 + } + + var newAskNum = SCP_BILLCODE_CONTROLLER.MakeASKCodeByNum(cnt); + + var add_Po = item.Clone(newBillId, item.Site); + db.TB_PO.Add(add_Po); + + var Add_Po_DETAIL = po_DetailList.Where(p => p.PoBillNum == oldGuid).ToList(); + int cntPo_detail = 1; + Add_Po_DETAIL.ForEach(p => p.PoBillNum = newBillId); + Add_Po_DETAIL.ForEach(p => + { + p.PoLine = cntPo_detail; + cntPo_detail++; + }); + + db.TB_PO_DETAIL.AddRange(Add_Po_DETAIL); + + var Add_AskList = askList.Where(p => p.PoBillNum == oldGuid).ToList(); + Add_AskList.ForEach(p => p.PoBillNum = newBillId); + Add_AskList.ForEach(p => p.AskBillNum = newAskNum); + Add_AskList.ForEach(p => p.ErpBillNum = newBillId); + db.TB_ASK.AddRange(Add_AskList); + var Add_ASK_DETAIL = askDetailList.Where(p => p.PoBillNum == oldGuid).ToList(); + Add_ASK_DETAIL.ForEach(p => p.PoBillNum = newBillId); + int cntAsk_detail = 1; + Add_ASK_DETAIL.ForEach(p => p.AskBillNum = newAskNum); + Add_ASK_DETAIL.ForEach(p => + { + p.PoLine = cntAsk_detail; + cntAsk_detail++; + }); + db.TB_ASK_DETAIL.AddRange(Add_ASK_DETAIL); + var ConsumList = consum.Where(p => p.BillNum == oldGuid).ToList(); + ConsumList.ForEach(p => p.BillNum = newBillId); + db.TB_MAXPO_CONSUME.AddRange(ConsumList); + var Add_UniList = uniList.Where(p => p.BillNum == oldGuid).ToList(); + int cntTS_detail = 1; + Add_UniList.ForEach(p => + { + p.ErpLineNum = cntTS_detail; + cntTS_detail++; + }); + Add_UniList.ForEach(p => p.BillNum = newBillId); + + db.TS_UNI_API.AddRange(Add_UniList); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + + } + //} + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + + public static void GroupDataRows(IEnumerable source, List destination, string[] groupByFields, int fieldIndex, DataTable schema) + { + if (fieldIndex >= groupByFields.Length || fieldIndex < 0) + { + DataTable dt = schema.Clone(); + foreach (DataRow row in source) + { + DataRow dr = dt.NewRow(); + dr.ItemArray = row.ItemArray; + dt.Rows.Add(dr); + } + destination.Add(dt); + return; + } + + var results = source.GroupBy(o => o[groupByFields[fieldIndex]]); + foreach (var rows in results) + { + GroupDataRows(rows, destination, groupByFields, fieldIndex + 1, schema); + } + + fieldIndex++; + } + /// + /// 富维订单导入 + /// + /// + /// + /// + /// + /// + /// + public static ResultObject EXCEL_PO_MOD1(DataTable p_order_list1, List p_order_list, string site, string p_creator, DateTime p_time, PoState p_modtype, string SubSite, string p_chineseName, string p_buyerPhone) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + _lst.ForEach + (p => + { + var _count = _lst.Count(itm => itm.物料号码 == p.物料号码 && itm.供应商编号 == p.供应商编号); + if (_count > 1) + { + lineError.Add(string.Format("导入的物料号码{0}有重复", p.物料号码)); + ErrorList = lineError; + } + var _ls = CheckExcelMode_Po1(db, p); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + + + List poList = new List(); + List po_DetailList = new List(); + List askList = new List(); + List askDetailList = new List(); + List uniList = new List(); + //先循环找到一个日期的订单 + foreach (DataColumn column in p_order_list1.Columns) + { + DateTime date = DateTime.MaxValue; + DateTime.TryParse(column.ColumnName, out date); + + if (date != DateTime.MaxValue && date.Year > 2000) + { + //找到所有日期下订单 + foreach (DataRow dataRow in p_order_list1.Rows)//订单分组表 + { + decimal _Qty = 0; + decimal.TryParse(dataRow[column.ColumnName].ToString(), out _Qty); + if (_Qty > 0) + { + // 创建主单据及看板 + var _Po = CreatePo(db, poList, dataRow, date, p_creator, site); + // 创建主单据及看板 + var _PoAsk = CreateAsk(poList, askList, dataRow, date, p_creator, db, site); + //创建明细 + var _PoDetail = CreatePoDetail(dataRow, _Qty, db, date, _Po, _PoAsk, p_creator, po_DetailList, site); + po_DetailList.Add(_PoDetail); + var _Askdetail = CreateAskDetail(db, dataRow, _Po, _PoAsk, _PoDetail, p_creator, site); + askDetailList.Add(_Askdetail); + var Tsuniapi = CreateTsuniapi(_Po, _PoAsk, _PoDetail, _Askdetail, dataRow, site); + uniList.Add(Tsuniapi); + } + } + } + } + int cnt = 1; + var podetail = po_DetailList.GroupBy(p => p.PoBillNum).ToList(); + + foreach (var item in poList) + { + + var oldGuid = item.PoBillNum; + var newBillId = SCP_BILLCODE_CONTROLLER.MakePOCode1();//订单号 + + var newAskNum = SCP_BILLCODE_CONTROLLER.MakeASKCodeByNum(cnt); + + var add_Po = item.Clone(newBillId, item.Site); + db.TB_PO.Add(add_Po); + + var Add_Po_DETAIL = po_DetailList.Where(p => p.PoBillNum == oldGuid).ToList(); + int cntPo_detail = 1; + List part = new List(); + Add_Po_DETAIL.ForEach(p => p.PoBillNum = newBillId); + Add_Po_DETAIL.ForEach(p => + { + + if (part.Contains(p.PartCode)) + { + var pa = Add_Po_DETAIL.FirstOrDefault(itm => itm.PartCode == p.PartCode); + p.PoLine = pa.PoLine; + } + else + { + p.PoLine = cntPo_detail; + cntPo_detail++; + } + part.Add(p.PartCode); + }); + + db.TB_PO_DETAIL.AddRange(Add_Po_DETAIL); + var Add_AskList = askList.Where(p => p.PoBillNum == oldGuid).ToList(); + Add_AskList.ForEach(p => p.PoBillNum = newBillId); + Add_AskList.ForEach(p => p.AskBillNum = newAskNum); + Add_AskList.ForEach(p => p.ErpBillNum = newBillId); + db.TB_ASK.AddRange(Add_AskList); + List part1 = new List(); + var Add_ASK_DETAIL = askDetailList.Where(p => p.PoBillNum == oldGuid).ToList(); + Add_ASK_DETAIL.ForEach(p => p.PoBillNum = newBillId); + int cntAsk_detail = 1; + Add_ASK_DETAIL.ForEach(p => p.AskBillNum = newAskNum); + Add_ASK_DETAIL.ForEach(p => + { + if (part1.Contains(p.PartCode)) + { + var pa = Add_ASK_DETAIL.FirstOrDefault(itm => itm.PartCode == p.PartCode); + p.PoLine = pa.PoLine; + } + else + { + p.PoLine = cntAsk_detail; + cntAsk_detail++; + } + part1.Add(p.PartCode); + }); + db.TB_ASK_DETAIL.AddRange(Add_ASK_DETAIL); + List part2 = new List(); + var Add_UniList = uniList.Where(p => p.BillNum == oldGuid).ToList(); + int cntTS_detail = 1; + Add_UniList.ForEach(p => + { + if (part2.Contains(p.PartCode)) + { + var pa = Add_UniList.FirstOrDefault(itm => itm.PartCode == p.PartCode); + p.ErpLineNum = pa.ErpLineNum; + } + else + { + p.ErpLineNum = cntTS_detail; + cntTS_detail++; + } + part2.Add(p.PartCode); + }); + Add_UniList.ForEach(p => p.BillNum = newBillId); + + db.TS_UNI_API.AddRange(Add_UniList); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + + } + } + + } + //} + } + + + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 富维多组件订单导入验证 + /// + /// + /// + /// + /// + /// + /// + public static ResultObject EXCEL_PO_Multicomponent(DataTable p_order_list1, List p_order_list, bool wmsweb,string site) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + _lst.ForEach + (p => + { + var _count = _lst.Count(itm => itm.物料号码 == p.物料号码 && itm.供应商编号 == p.供应商编号); + if (_count > 1) + { + lineError.Add(string.Format("导入的物料号码{0}有重复", p.物料号码)); + ErrorList = lineError; + } + var _ls = CheckExcelMode_Multicomponent(db, p, wmsweb); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + _lst.ForEach + (p => + { + + if (wmsweb == false) + { + BomList.JsonService bomVersionRe = new BomList.JsonService(); + var _ReturnRelust = bomVersionRe.GetBomsByVer(p.物料号码, p.BOM版本); + var _Bomlist = JsonConvert.DeserializeObject>(_ReturnRelust); + foreach (var bom in _Bomlist) + { + var Bomsub = db.TA_SubPartCode.FirstOrDefault(t => t.PartCode == bom.PartCode && t.SubPartCode == bom.SubPartCode&&t.BOMedtiton==bom.BomFillIn); + if (Bomsub == null) + { + TA_SubPartCode subpart = new TA_SubPartCode(); + subpart.PartCode = bom.PartCode; + subpart.SubPartCode = bom.SubPartCode; + subpart.BOMedtiton = p.BOM版本; + subpart.Qty = bom.Qty; + subpart.Site = site; + db.TA_SubPartCode.AddOrUpdate(subpart); + } + else + { + Bomsub.Qty = bom.Qty; + db.TA_SubPartCode.AddOrUpdate(Bomsub); + } + + + } + } + else + { + BomList1.JsonService bomVersionRe = new BomList1.JsonService(); + var _ReturnRelust = bomVersionRe.GetBomsByVer(p.物料号码, p.BOM版本); + var _Bomlist = JsonConvert.DeserializeObject>(_ReturnRelust); + foreach (var bom in _Bomlist) + { + var Bomsub = db.TA_SubPartCode.FirstOrDefault(t => t.PartCode == bom.PartCode && t.SubPartCode == bom.SubPartCode && t.BOMedtiton == bom.BomFillIn); + if (Bomsub == null) + { + TA_SubPartCode subpart = new TA_SubPartCode(); + subpart.PartCode = bom.PartCode; + subpart.SubPartCode = bom.SubPartCode; + subpart.BOMedtiton = p.BOM版本; + subpart.Qty = bom.Qty; + subpart.Site = site; + db.TA_SubPartCode.AddOrUpdate(subpart); + } + else + { + Bomsub.Qty = bom.Qty; + db.TA_SubPartCode.AddOrUpdate(Bomsub); + } + + + } + } + + }); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + + } + } + + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + public static ResultObject EXCEL_PO_MAX(DataTable p_order_list1, List p_order_list, string site, string p_creator, DateTime p_time, PoState p_modtype, string SubSite, string p_chineseName, string time) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + //List PoError= new List(); + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + _lst.ForEach + (p => + { + var _count = _lst.Count(itm => itm.原材物料号 == p.原材物料号 && itm.供应商编号 == p.供应商编号); + if (_count > 1) + { + lineError.Add(string.Format("导入的物料号码{0}有重复", p.原材物料号)); + ErrorList = lineError; + } + var _ls = CheckExcelMode_MAXPO(db, p); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + + var VendidList = _lst.GroupBy(t => t.供应商编号).ToList(); + VendidList.ForEach((p) => + { + var list = p.ToList(); + + if (list.Count > 0) + { + var _entity = list.FirstOrDefault(); + + TB_MAXPO maxp = new TB_MAXPO(); + maxp.PoBillNum = SCP_BILLCODE_CONTROLLER.MakemaxPOCode(_entity.供应商编号, time); + maxp.VendId = _entity.供应商编号; + maxp.CreateUser = p_chineseName; + maxp.CreateTime = DateTime.Now; + maxp.ContractNo = maxp.PoBillNum; + maxp.ContractMonth = time; + maxp.Site = site; + maxp.Remark = _entity.备注; + db.TB_MAXPO.AddOrUpdate(maxp); + + + + int i = 1; + list.ForEach((itm) => + { + List yclist = new List(); + TB_MAXPO_DETAIL maxpodetail = new TB_MAXPO_DETAIL(); + BomList1.JsonService bomVersionRe = new BomList1.JsonService(); + var _ReturnRelust = bomVersionRe.GetBom(itm.零件号, itm.原材物料号); + var _Bomlist = JsonConvert.DeserializeObject>(_ReturnRelust); + var _bom = _Bomlist.First(); + maxpodetail.Singlecon = _bom.Qty; + var part = db.TA_PART.FirstOrDefault(t => t.PartCode == itm.原材物料号); + maxpodetail.PoBillNum = maxp.PoBillNum; + maxpodetail.ContractNo = maxp.PoBillNum; + maxpodetail.VendId = itm.供应商编号; + maxpodetail.PartCode = itm.原材物料号; + maxpodetail.PartNumber = itm.零件号; + maxpodetail.Texture = part.ProjectId;//材质 + maxpodetail.Model = itm.车型; + maxpodetail.Finprspec = part.PartDesc2;//规格 + maxpodetail.TechStandard = itm.技术标准; + maxpodetail.MinordQty = decimal.Parse(itm.起定量); + maxpodetail.OrderQtyd = decimal.Parse(itm.订货量吨); + maxpodetail.OrderQtykg = decimal.Parse(itm.订货量吨) * 1000; + maxpodetail.OrderNumber = decimal.Parse(itm.订货件数); + maxpodetail.SurplusQty = maxpodetail.OrderQtykg; + maxpodetail.CreateTime = DateTime.Now; + maxpodetail.CreateUser = p_chineseName; + maxpodetail.Site = site; + maxpodetail.AsnQty = maxpodetail.OrderQtykg; + maxpodetail.ReceQty = 0; + foreach (DataColumn column in p_order_list1.Columns)// + { + int yuce = int.MaxValue; + int.TryParse(column.ColumnName, out yuce); + if (yuce > 0) + { + foreach (DataRow dataRow in p_order_list1.Rows) + { + decimal _Qty = 0; + decimal.TryParse(dataRow[column.ColumnName].ToString(), out _Qty); + if (dataRow["原材物料号"].ToString() == itm.原材物料号 && dataRow["供应商编号"].ToString()==itm.供应商编号) + { + string forecast = ""; + if (_Qty > 0) + { + forecast = yuce + "/" + _Qty.ToString(); + } + else + { + forecast = yuce + "/" + "0"; + } + + yclist.Add(forecast); + } + + } + } + + + + } + + maxpodetail.CreateTime = maxp.CreateTime; + maxpodetail.Matermanu = itm.材料厂家; + maxpodetail.ContractMonth = time; + if (yclist.Count() > 0) + { + int forecascount = 6 - yclist.Count(); + if (forecascount > 0) + { + for (int a=1;a<=forecascount; a++) + { + yclist.Add(""); + } + } + maxpodetail.forecastone = yclist.First();//预测1 + maxpodetail.forecasttwo = yclist[yclist.Count - 5];//预测2 + maxpodetail.forecastthree = yclist[yclist.Count - 4];//预测3 + maxpodetail.forecastfour = yclist[yclist.Count - 3];//预测4 + maxpodetail.forecastfive = yclist[yclist.Count - 2];//预测5 + maxpodetail.forecastsix = yclist.Last();//预测6 + } + + maxpodetail.PoLine = i; + db.TB_MAXPO_DETAIL.AddOrUpdate(maxpodetail); + i++; + TS_UNI_API maxuni = new TS_UNI_API(); + maxuni.BillNum = maxpodetail.PoBillNum; + maxuni.InterfaceType = "MaxPobillnum"; + maxuni.TableName = "TS_UNI_API"; + maxuni.BillType = 701; + maxuni.SubBillType = 0; + maxuni.PartCode = maxpodetail.PartCode; + maxuni.VendId = maxpodetail.VendId;//供应商编号 + if (string.IsNullOrEmpty(part.ProjectId)) + { + maxuni.Batch = ""; + } + else + { + maxuni.Batch = part.ProjectId;//材质 + } + + maxuni.Qty = decimal.Parse(itm.订货件数); + maxuni.State = 1; + maxuni.CreateOper = p_chineseName;//创建者 + maxuni.CreateTime = maxp.CreateTime; + maxuni.PutTime = DateTime.Now; + maxuni.Extend1 = itm.零件号; + maxuni.PackQty = decimal.Parse(itm.起定量); + maxuni.Price = decimal.Parse(itm.订货量吨); + maxuni.VendBatch = time;//合同月 + maxuni.Currency = itm.车型; + maxuni.Buyer = itm.技术标准; + maxuni.BuyerPhone = part.PartDesc2;//规格 + maxuni.Tax = 0; + maxuni.PoUnit = maxpodetail.forecastone;//预测1 + maxuni.LocUnit = maxpodetail.forecasttwo;//预测2 + maxuni.Attn = maxpodetail.forecastthree;//预测3 + maxuni.Receiver = maxpodetail.forecastfour;//预测4 + maxuni.ModType = maxpodetail.forecastfive;//预测5 + maxuni.SubSite = maxpodetail.forecastsix;//预测6 + maxuni.Site = site; + maxuni.Extend2 = itm.材料厂家; + maxuni.TaxAmt =_bom.Qty;//单件消耗 + maxuni.ValidDate = DateTime.Now; + maxuni.ErpLineNum = maxpodetail.PoLine; + maxuni.Site = site; + maxuni.Domain = site; + maxuni.Extend3 = "A"; + db.TS_UNI_API.AddOrUpdate(maxuni); + }); + } + + + + + }); + + + + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + + } + } + + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// 富维多组件订单导入验证 + ///
+ /// + /// + /// + /// + /// + /// + public static ResultObject EXCEL_PO_SUBMANY(DataTable p_order_list1, List p_order_list, string p_creator, string site, string p_chineseName) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + List poList = new List(); + List po_DetailList = new List(); + List askList = new List(); + List askDetailList = new List(); + List uniList = new List(); + List posub_DetailList = new List(); + List asksubpartlist= new List(); + //先循环找到一个日期的订单 + foreach (DataColumn column in p_order_list1.Columns) + { + DateTime date = DateTime.MaxValue; + DateTime.TryParse(column.ColumnName, out date); + + if (date != DateTime.MaxValue && date.Year > 2000) + { + //找到所有日期下订单 + foreach (DataRow dataRow in p_order_list1.Rows)//订单分组表 + { + decimal _Qty = 0; + decimal.TryParse(dataRow[column.ColumnName].ToString(), out _Qty); + if (_Qty > 0) + { + // 创建主单据及看板 + var _Po = CreatePo(db, poList, dataRow, date, p_creator, site); + // 创建主单据及看板 + var _PoAsk = CreateManyAsk(poList, askList, dataRow, date, p_creator, db, site); + //创建明细 + var _PoDetail = CreateManyPoDetail(dataRow, _Qty, db, date, _Po, _PoAsk, p_creator, po_DetailList, site); + po_DetailList.Add(_PoDetail); + var _Askdetail = CreateManyAskDetail(db, dataRow, _Po, _PoAsk, _PoDetail, p_creator, site); + askDetailList.Add(_Askdetail); + List Tsuniapi = CreateManyTsuniapi(_Po, _PoAsk, _PoDetail, _Askdetail, dataRow, site, db); + foreach(var ts in Tsuniapi) + { + uniList.Add(ts); + } + List Subdetail = CreateManyPoDetailSubPart(_Po, _PoAsk, _PoDetail, _Askdetail, dataRow, site, db); + foreach (var su in Subdetail) + { + posub_DetailList.Add(su); + } + List SubAskdetail = CreateManyAskSubPart(_Po, _PoAsk, _PoDetail, _Askdetail, dataRow, site, db); + foreach (var suask in SubAskdetail) + { + asksubpartlist.Add(suask); + } + + } + } + } + } + int cnt = 1; + var podetail = po_DetailList.GroupBy(p => p.PoBillNum).ToList(); + + foreach (var item in poList) + { + + var oldGuid = item.PoBillNum; + var newBillId = SCP_BILLCODE_CONTROLLER.MakePOCode1();//订单号 + + var newAskNum = SCP_BILLCODE_CONTROLLER.MakeASKCodeByNum(cnt); + + var add_Po = item.Clone(newBillId, item.Site); + db.TB_PO.Add(add_Po); + + var Add_Po_DETAIL = po_DetailList.Where(p => p.PoBillNum == oldGuid).ToList(); + int cntPo_detail = 1; + Add_Po_DETAIL.ForEach(p => p.PoBillNum = newBillId); + Add_Po_DETAIL.ForEach(p => + { + p.PoLine = cntPo_detail; + cntPo_detail++; + }); + + db.TB_PO_DETAIL.AddRange(Add_Po_DETAIL); + var Add_AskList = askList.Where(p => p.PoBillNum == oldGuid).ToList(); + Add_AskList.ForEach(p => p.PoBillNum = newBillId); + Add_AskList.ForEach(p => p.AskBillNum = newAskNum); + Add_AskList.ForEach(p => p.ErpBillNum = newBillId); + db.TB_ASK.AddRange(Add_AskList); + var Add_AskSubList = asksubpartlist.Where(p => p.AskBillNum == oldGuid).ToList(); + Add_AskSubList.ForEach(p => p.AskBillNum = newAskNum); + db.TA_ASK_SUBPART.AddRange(Add_AskSubList); + var Add_ASK_DETAIL = askDetailList.Where(p => p.PoBillNum == oldGuid).ToList(); + Add_ASK_DETAIL.ForEach(p => p.PoBillNum = newBillId); + int cntAsk_detail = 1; + Add_ASK_DETAIL.ForEach(p => p.AskBillNum = newAskNum); + Add_ASK_DETAIL.ForEach(p => + { + p.PoLine = cntAsk_detail; + cntAsk_detail++; + }); + db.TB_ASK_DETAIL.AddRange(Add_ASK_DETAIL); + + var Add_UniList = uniList.Where(p => p.BillNum == oldGuid).ToList(); + int cntTS_detail = 1; + Add_UniList.ForEach(p => p.BillNum = newBillId); + //Add_UniList.ForEach(p => + //{ + var unii = Add_UniList.GroupBy(t => t.PartCode).ToList(); + unii.ForEach(t => + { + var uniii = t.ToList(); + uniii.ForEach(r => { + r.ErpLineNum = cntTS_detail; + }); + cntTS_detail++; + }); + //}); + + db.TS_UNI_API.AddRange(Add_UniList); + + var Add_PoSubList = posub_DetailList.Where(p => p.PoBillNum == oldGuid).ToList(); + int poSub_detail = 1; + Add_PoSubList.ForEach(p => p.PoBillNum = newBillId); + //Add_PoSubList.ForEach(p => + //{ + var poii = Add_PoSubList.GroupBy(t => t.PartCode).ToList(); + poii.ForEach(t => + { + var poiii = t.ToList(); + poiii.ForEach(r => { + r.PoLine = cntTS_detail; + }); + poSub_detail++; + }); + + //}); + + + db.TB_PO_SUBDETAIL.AddRange(Add_PoSubList); + foreach (var sub in Add_UniList) + { + var suu = db.TA_SubPartCode.FirstOrDefault(t => t.PartCode == sub.PartCode && t.SubPartCode == sub.Extend1); + if (suu != null) + { + db.TA_SubPartCode.Remove(suu); + } + + } + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + + } + } + + + //} + } + + + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + /// + /// 本特勒订单导入 + /// + /// + /// + /// + /// + /// + /// + public static ResultObject EXCEL_PO_MOD_BTL(DataTable p_order_list1, List p_order_list, string site, string p_creator, DateTime p_time, PoState p_modtype, string SubSite, string p_chineseName, string p_buyerPhone) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + var _lst = p_order_list; + _lst.ForEach + (p => + { + var _count = _lst.Count(itm => itm.物料号码 == p.物料号码 && itm.供应商编号 == p.供应商编号); + if (_count > 1) + { + lineError.Add(string.Format("导入的物料号码{0}有重复", p.物料号码)); + ErrorList = lineError; + } + var _ls = CheckExcelMode_BTL(db, p); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + + + List poList = new List(); + List po_DetailList = new List(); + List askList = new List(); + List askDetailList = new List(); + List uniList = new List(); + //先循环找到一个日期的订单 + foreach (DataColumn column in p_order_list1.Columns) + { + DateTime date = DateTime.MaxValue; + DateTime.TryParse(column.ColumnName, out date); + + if (date != DateTime.MaxValue && date.Year > 2000) + { + //找到所有日期下订单 + foreach (DataRow dataRow in p_order_list1.Rows)//订单分组表 + { + decimal _Qty = 0; + decimal.TryParse(dataRow[column.ColumnName].ToString(), out _Qty); + if (_Qty > 0) + { + // 创建主单据及看板 + var _Po = CreatePo(db, poList, dataRow, date, p_creator, site); + // 创建主单据及看板 + var _PoAsk = CreateAsk(poList, askList, dataRow, date, p_creator, db, site); + //创建明细 + var _PoDetail = CreatePoDetail(dataRow, _Qty, db, date, _Po, _PoAsk, p_creator, po_DetailList, site); + po_DetailList.Add(_PoDetail); + var _Askdetail = CreateAskDetail(db, dataRow, _Po, _PoAsk, _PoDetail, p_creator, site); + askDetailList.Add(_Askdetail); + var Tsuniapi = CreateTsuniapi(_Po, _PoAsk, _PoDetail, _Askdetail, dataRow, site); + uniList.Add(Tsuniapi); + } + } + } + } + int cnt = 1; + var podetail = po_DetailList.GroupBy(p => p.PoBillNum).ToList(); + + foreach (var item in poList) + { + + var oldGuid = item.PoBillNum; + var newBillId = SCP_BILLCODE_CONTROLLER.MakePOCode3();//订单号 + + var newAskNum = SCP_BILLCODE_CONTROLLER.MakeASKCodeByNum(cnt); + + var add_Po = item.Clone(newBillId, item.Site); + db.TB_PO.Add(add_Po); + + var Add_Po_DETAIL = po_DetailList.Where(p => p.PoBillNum == oldGuid).ToList(); + int cntPo_detail = 1; + Add_Po_DETAIL.ForEach(p => p.PoBillNum = newBillId); + Add_Po_DETAIL.ForEach(p => + { + + p.PoLine = cntPo_detail; + cntPo_detail++; + }); + + db.TB_PO_DETAIL.AddRange(Add_Po_DETAIL); + var Add_AskList = askList.Where(p => p.PoBillNum == oldGuid).ToList(); + Add_AskList.ForEach(p => p.PoBillNum = newBillId); + Add_AskList.ForEach(p => p.AskBillNum = newAskNum); + Add_AskList.ForEach(p => p.ErpBillNum = newBillId); + db.TB_ASK.AddRange(Add_AskList); + + var Add_ASK_DETAIL = askDetailList.Where(p => p.PoBillNum == oldGuid).ToList(); + Add_ASK_DETAIL.ForEach(p => p.PoBillNum = newBillId); + int cntAsk_detail = 1; + Add_ASK_DETAIL.ForEach(p => p.AskBillNum = newAskNum); + Add_ASK_DETAIL.ForEach(p => + { + p.PoLine = cntAsk_detail; + cntAsk_detail++; + }); + db.TB_ASK_DETAIL.AddRange(Add_ASK_DETAIL); + + var Add_UniList = uniList.Where(p => p.BillNum == oldGuid).ToList(); + int cntTS_detail = 1; + Add_UniList.ForEach(p => + { + p.ErpLineNum = cntTS_detail; + cntTS_detail++; + }); + Add_UniList.ForEach(p => p.BillNum = newBillId); + + db.TS_UNI_API.AddRange(Add_UniList); + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + + } + } + + } + //} + } + + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + private static TB_PO CreatePo(ScpEntities db,List p_poList, DataRow p_dataRow,DateTime p_PoBillTime, string str,string site) + { + var _VendId = p_dataRow["供应商编号"].ToString(); + var po = p_poList.FirstOrDefault(p=>p.VendId== _VendId + && p.EndTime== p_PoBillTime); + if (po != null) return po; + TB_PO _po = new TB_PO(); + _po.PoBillNum = Guid.NewGuid().ToString(); // + _po.VendId = p_dataRow["供应商编号"].ToString(); + _po.Buyer = p_dataRow["采购员"].ToString(); + _po.ErpBillNum = _po.PoBillNum; + _po.ModType = (int)BillFwModType.Non_Contract; + _po.BuyerPhone = p_dataRow["采购员电话"].ToString(); + _po.Site = site; + _po.State = (int)PoState.Open; + _po.GUID = Guid.NewGuid(); + _po.IsDeleted = false; + _po.CreateTime = DateTime.Now; + _po.CreateUser = str; + _po.BeginTime = DateTime.Now; + _po.EndTime = p_PoBillTime; + if (site == "U32") + { + _po.Remark = p_dataRow["备注"].ToString(); + } + p_poList.Add(_po); + + return _po; + } + private static TB_ASK CreateAsk(List p_poList, List p_askList, DataRow p_dataRow, DateTime p_PoBillTime, string str,ScpEntities db,string site) + { + var _VendId = p_dataRow["供应商编号"].ToString(); + var _po = p_poList.FirstOrDefault(p => p.VendId == _VendId + && p.EndTime == p_PoBillTime); + var _Ask = p_askList.FirstOrDefault(p => p.VendId == _VendId + && p.EndTime == p_PoBillTime); + if (_Ask != null) return _Ask; + TB_ASK _ask = new TB_ASK(); + _ask.AskBillNum = "1"; + _ask.GUID = Guid.NewGuid(); + _ask.PoBillNum = _po.PoBillNum; + _ask.VendId = _po.VendId; + _ask.IsDeleted = false; + _ask.CreateTime = DateTime.Now; + _ask.CreateUser = str; + _ask.Site = site; + _ask.ReceivedPort = "";//交货口 + _ask.State = (int)AskState.New; + _ask.ModType = 2; + _ask.ErpBillNum = _po.PoBillNum; + _ask.BeginTime = DateTime.Parse(_po.BeginTime.ToString()); + _ask.Buyer = _po.Buyer; + _ask.EndTime = p_PoBillTime; + _ask.BuyerPhone = _po.BuyerPhone; + _ask.SubSite = site; + if (site == "U32") + { + _ask.Remark = p_dataRow["备注"].ToString(); + _po.Remark = p_dataRow["备注"].ToString(); + } + p_askList.Add(_ask); + return _ask; + } + private static TB_ASK CreateManyAsk(List p_poList, List p_askList, DataRow p_dataRow, DateTime p_PoBillTime, string str, ScpEntities db, string site) + { + var _VendId = p_dataRow["供应商编号"].ToString(); + var _po = p_poList.FirstOrDefault(p => p.VendId == _VendId + && p.EndTime == p_PoBillTime); + var _Ask = p_askList.FirstOrDefault(p => p.VendId == _VendId + && p.EndTime == p_PoBillTime); + if (_Ask != null) return _Ask; + TB_ASK _ask = new TB_ASK(); + _ask.AskBillNum = "1"; + _ask.GUID = Guid.NewGuid(); + _ask.PoBillNum = _po.PoBillNum; + _ask.VendId = _po.VendId; + _ask.IsDeleted = false; + _ask.CreateTime = DateTime.Now; + _ask.CreateUser = str; + _ask.Site = site; + _ask.ReceivedPort = "";//交货口 + _ask.State = (int)AskState.New; + _ask.ModType = 2; + _ask.ErpBillNum = _po.PoBillNum; + _ask.BeginTime = DateTime.Parse(_po.BeginTime.ToString()); + _ask.Buyer = _po.Buyer; + _ask.EndTime = p_PoBillTime; + _ask.BuyerPhone = _po.BuyerPhone; + _ask.SubSite = site; + if (site == "U32") + { + _ask.Remark = p_dataRow["备注"].ToString(); + _po.Remark = p_dataRow["备注"].ToString(); + } + _ask.Extend3 = "1"; + p_askList.Add(_ask); + return _ask; + } + + private static TB_ASK_DETAIL CreateAskDetail(ScpEntities db, DataRow p_dataRow, TB_PO p_Po, TB_ASK p_Ask,TB_PO_DETAIL p_PoDetail,string str,string site) + { + TB_ASK_DETAIL _tDetail = new TB_ASK_DETAIL(); + + _tDetail.PoBillNum = p_Po.PoBillNum; + _tDetail.AskBillNum = p_Ask.AskBillNum; + _tDetail.PoLine = p_PoDetail.PoLine; + _tDetail.PoUnit = p_PoDetail.PoUnit; + _tDetail.CreateTime = DateTime.Now; + _tDetail.CreateUser = str; + _tDetail.PartCode = p_PoDetail.PartCode; + _tDetail.BeginTime = DateTime.Now; + _tDetail.EndTime = p_PoDetail.EndTime; + _tDetail.TempQty = 0; + _tDetail.AskQty = p_PoDetail.PlanQty; + _tDetail.IsDeleted = false; + _tDetail.LocUnit = p_PoDetail.LocUnit; + _tDetail.UnConv = 1; + _tDetail.SubSite = p_dataRow["零件号"].ToString(); + var _vender2 = db.TA_Appliance.SingleOrDefault(t => t.PartNumber == _tDetail.SubSite.ToUpper() && t.VendID == p_Po.VendId); + var part = db.TA_PART.SingleOrDefault(t => t.PartCode == _tDetail.PartCode); + _tDetail.DockCode = part.PartGroup; + _tDetail.Extend1 = _vender2.ReceivingPort;//收货口 + _tDetail.Extend2 = _vender2.Model;//车型 + _tDetail.Extend3 = _vender2.Texture;//材质 + _tDetail.State = (int)PoState.Open; + _tDetail.Currency = part.PartDesc2;//规格 + _tDetail.GUID = Guid.NewGuid(); + _tDetail.Price = p_PoDetail.Price; + _tDetail.Remark = p_Po.VendId; + _tDetail.Remark1= p_Po.VendId; + _tDetail.UpdateInfo= p_dataRow["组件物料号"].ToString(); + + if (site == "U32") + { + _tDetail.Remark = p_dataRow["备注"].ToString(); + } + + return _tDetail; + } + private static TB_ASK_DETAIL CreateManyAskDetail(ScpEntities db, DataRow p_dataRow, TB_PO p_Po, TB_ASK p_Ask, TB_PO_DETAIL p_PoDetail, string str, string site) + { + TB_ASK_DETAIL _tDetail = new TB_ASK_DETAIL(); + + _tDetail.PoBillNum = p_Po.PoBillNum; + _tDetail.AskBillNum = p_Ask.AskBillNum; + _tDetail.PoLine = p_PoDetail.PoLine; + _tDetail.PoUnit = p_PoDetail.PoUnit; + _tDetail.CreateTime = DateTime.Now; + _tDetail.CreateUser = str; + _tDetail.PartCode = p_PoDetail.PartCode; + _tDetail.BeginTime = DateTime.Now; + _tDetail.EndTime = p_PoDetail.EndTime; + _tDetail.TempQty = 0; + _tDetail.AskQty = p_PoDetail.PlanQty; + _tDetail.IsDeleted = false; + _tDetail.LocUnit = p_PoDetail.LocUnit; + _tDetail.UnConv = 1; + _tDetail.SubSite = p_dataRow["零件号"].ToString(); + var _vender2 = db.TA_Appliance.SingleOrDefault(t => t.PartNumber == _tDetail.SubSite.ToUpper() && t.VendID == p_Po.VendId); + var part = db.TA_PART.SingleOrDefault(t => t.PartCode == _tDetail.PartCode); + _tDetail.DockCode = part.PartGroup; + _tDetail.Extend1 = _vender2.ReceivingPort;//收货口 + _tDetail.Extend2 = _vender2.Model;//车型 + _tDetail.Extend3 = _vender2.Texture;//材质 + _tDetail.State = (int)PoState.Open; + _tDetail.Currency = part.PartDesc2;//规格 + _tDetail.GUID = Guid.NewGuid(); + _tDetail.Price = p_PoDetail.Price; + _tDetail.Remark = p_Po.VendId; + //_tDetail.UpdateInfo = p_dataRow["组件物料号"].ToString(); + return _tDetail; + } + + private static TB_PO_DETAIL CreatePoDetail(DataRow p_dataRow,decimal p_Qty, ScpEntities db, DateTime p_PoBillTime,TB_PO p_Po,TB_ASK p_Ask,string str, List po_DetailList,string site) + { + int _rowNumber = 1; + var _Part = p_dataRow["物料号码"].ToString(); + TB_PO_DETAIL _detail = new TB_PO_DETAIL(); + + _detail.PoBillNum = p_Po.PoBillNum; + _detail.PartCode = p_dataRow["物料号码"].ToString(); + _detail.PoUnit = p_dataRow["单位"].ToString(); + _detail.Extend1 = p_dataRow["零件号"].ToString(); + _detail.Currency = "CNY"; + _detail.CreateTime =DateTime.Parse( p_dataRow["订单创建时间"].ToString()); + _detail.BeginTime = DateTime.Now; + _detail.IsDeleted = false; + _detail.LocUnit = p_dataRow["组件计量单位"].ToString(); + _detail.UnConv = 1; + _detail.PackQty = decimal.Parse(p_dataRow["组件数量"].ToString()); + _detail.State = (int)PoState.Open; + _detail.GUID = Guid.NewGuid(); + _detail.Site = site; + _detail.EndTime = p_PoBillTime; + _detail.PlanQty = p_Qty; + _detail.CreateUser = str; + var _price = db.TB_NetPrice.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId); + if (_price == 0) + { + var _price1 = db.TA_PART.SingleOrDefault(t => t.PartCode == _detail.PartCode.ToUpper()); + _detail.Price = decimal.Parse(_price1.Remark); + } + else + { + var _price2 = db.TB_NetPrice.Where(t => t.PartCode == _detail.PartCode.ToUpper()&&t.VendId==p_Po.VendId).Select(r => r.EndTime).Max(); + var _price8 = db.TB_NetPrice.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId).Select(r => r.StartTime).Max(); + DateTime dateTime = DateTime.Now; + if (_price2 > dateTime || _price2 == dateTime) + { + var _price3 = db.TB_NetPrice.FirstOrDefault(t => t.PartCode == _detail.PartCode.ToUpper() && t.StartTime == _price8 && t.VendId == p_Po.VendId); + _detail.Price = _price3.Amt; + } + else + { + var _price4 = db.TA_PART.SingleOrDefault(t => t.PartCode == _detail.PartCode.ToUpper()); + _detail.Price = decimal.Parse(_price4.Remark); + } + } + _detail.Extend3 = p_dataRow["BOM版本"].ToString(); + _detail.Extend2= p_dataRow["存储地点"].ToString(); + _detail.SubSite = p_dataRow["组件物料号"].ToString(); + _detail.CreateUser = p_dataRow["采购组"].ToString();//采购组 + _rowNumber++; + + + return _detail; + } + private static TB_PO_DETAIL CreateManyPoDetail(DataRow p_dataRow, decimal p_Qty, ScpEntities db, DateTime p_PoBillTime, TB_PO p_Po, TB_ASK p_Ask, string str, List po_DetailList, string site) + { + int _rowNumber = 1; + var _Part = p_dataRow["物料号码"].ToString(); + TB_PO_DETAIL _detail = new TB_PO_DETAIL(); + _detail.PoBillNum = p_Po.PoBillNum; + _detail.PartCode = p_dataRow["物料号码"].ToString(); + _detail.PoUnit = p_dataRow["单位"].ToString(); + _detail.Extend1 = p_dataRow["零件号"].ToString(); + _detail.Currency = "CNY"; + _detail.CreateTime = DateTime.Parse(p_dataRow["订单创建时间"].ToString()); + _detail.BeginTime = DateTime.Now; + _detail.IsDeleted = false; + _detail.UnConv = 1; + _detail.State = (int)PoState.Open; + _detail.GUID = Guid.NewGuid(); + _detail.Site = site; + _detail.EndTime = p_PoBillTime; + _detail.PlanQty = p_Qty; + _detail.CreateUser = str; + var _price = db.TB_NetPrice.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId); + if (_price == 0) + { + var _price1 = db.TA_PART.SingleOrDefault(t => t.PartCode == _detail.PartCode.ToUpper()); + _detail.Price = decimal.Parse(_price1.Remark); + } + else + { + var _price2 = db.TB_NetPrice.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId).Select(r => r.EndTime).Max(); + var _price8 = db.TB_NetPrice.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId).Select(r => r.StartTime).Max(); + DateTime dateTime = DateTime.Now; + if (_price2 > dateTime || _price2 == dateTime) + { + var _price3 = db.TB_NetPrice.FirstOrDefault(t => t.PartCode == _detail.PartCode.ToUpper() && t.StartTime == _price8 && t.VendId == p_Po.VendId); + _detail.Price = _price3.Amt; + } + else + { + var _price4 = db.TA_PART.SingleOrDefault(t => t.PartCode == _detail.PartCode.ToUpper()); + _detail.Price = decimal.Parse(_price4.Remark); + } + } + _detail.CreateUser = p_dataRow["采购组"].ToString();//采购组 + _rowNumber++; + + + return _detail; + } + private static TS_UNI_API CreateTsuniapi( TB_PO p_Po, TB_ASK p_Ask, TB_PO_DETAIL p_PoDetail,TB_ASK_DETAIL p_AskDetail,DataRow p_dataRow,string site) + { + + TS_UNI_API uni = new TS_UNI_API(); + + uni.InterfaceType = "Pobillnum"; //订单标识 + uni.TableName = "TS_UNI_API"; + uni.BillType = (int)BillType.ReHandleVin; + uni.SubBillType = 0; + uni.BillNum = p_Po.PoBillNum;//订单号 + uni.PartCode = p_PoDetail.PartCode; //零件号 + uni.Buyer = p_Po.Buyer;//采购员 + uni.BuyerPhone = p_Po.BuyerPhone;//采购员电话 + uni.ModType = p_PoDetail.CreateUser;//采购组 + uni.Qty = p_PoDetail.PlanQty;//零件数量 + uni.CreateOper = p_Po.CreateUser; + uni.CreateTime = p_Po.CreateTime;//订单创建时间 + uni.PutTime = ScpCache.GetServerTime(); + uni.VendId = p_Po.VendId;//供应商编号 + uni.PoUnit = p_PoDetail.PoUnit;//零件单位 + uni.LocUnit = p_PoDetail.LocUnit;//组件单位 + uni.ValidDate = DateTime.Now;//当前系统时间 + uni.ErpLineNum = p_PoDetail.PoLine;//订单行号 + uni.Price = p_PoDetail.Price;//零件价格 + uni.Site = p_Po.Site;//地点 + uni.Extend3= p_dataRow["存储地点"].ToString(); + uni.Domain = site; + uni.Extend2 = "N";//退货凭证 + uni.Extend1 = p_PoDetail.SubSite;//组件物料号 + // uni.PutTime = DateTime.Parse(_detail.EndTime.ToString()); //要求到货日期 + uni.Batch = p_PoDetail.PoUnit;//采购计量单位 + uni.ErpBillNum = p_PoDetail.PackQty.ToString();//组件数量 + uni.VendBatch = p_PoDetail.CreateUser; + uni.State = 1; + uni.Invoice = "3"; + uni.Currency = p_Po.SubSite; + if (site == "W21") + { + uni.Barcode = "CY03"; + } + else + { + uni.Barcode = "FB06"; + } + + uni.Currency = p_PoDetail.Extend3; + uni.Receiver = "I";//订单类型 + uni.SubSite = p_AskDetail.Extend1; + uni.Attn = p_dataRow["备注"].ToString(); + return uni; + } + private static List CreateManyTsuniapi(TB_PO p_Po, TB_ASK p_Ask, TB_PO_DETAIL p_PoDetail, TB_ASK_DETAIL p_AskDetail, DataRow p_dataRow, string site, ScpEntities db) + { + + List unilist = new List(); + var _bom = p_dataRow["BOM版本"].ToString(); + var subpart = db.TA_SubPartCode.Where(p => p.PartCode == p_PoDetail.PartCode&&p.BOMedtiton == _bom).ToList(); + foreach (var sub in subpart) + { + TS_UNI_API uni = new TS_UNI_API(); + uni.InterfaceType = "Pobillnum"; //订单标识 + uni.TableName = "TS_UNI_API"; + uni.BillType = (int)BillType.ReHandleVin; + uni.SubBillType = 0; + uni.BillNum = p_Po.PoBillNum;//订单号 + uni.PartCode = p_PoDetail.PartCode; //零件号 + uni.Buyer = p_Po.Buyer;//采购员 + uni.BuyerPhone = p_Po.BuyerPhone;//采购员电话 + uni.ModType = p_PoDetail.CreateUser;//采购组 + uni.Qty = p_PoDetail.PlanQty;//零件数量 + uni.CreateOper = p_Po.CreateUser; + uni.CreateTime = p_Po.CreateTime;//订单创建时间 + uni.PutTime = ScpCache.GetServerTime(); + uni.VendId = p_Po.VendId;//供应商编号 + uni.PoUnit = p_PoDetail.PoUnit;//零件单位 + var unit = db.TA_PART.FirstOrDefault(t=>t.PartCode==sub.SubPartCode); + uni.LocUnit = unit.Unit;//组件单位 + uni.ValidDate = DateTime.Now;//当前系统时间 + uni.ErpLineNum = p_PoDetail.PoLine;//订单行号 + uni.Price = p_PoDetail.Price;//零件价格 + uni.Site = p_Po.Site;//地点 + uni.Extend3 = p_dataRow["存储地点"].ToString(); + uni.Domain = site; + uni.Extend2 = "N";//退货凭证 + uni.Extend1 = sub.SubPartCode;//组件物料号 + uni.Batch = p_PoDetail.PoUnit;//采购计量单位 + uni.ErpBillNum = (sub.Qty* p_PoDetail.PlanQty).ToString();//组件数量 + uni.VendBatch = p_PoDetail.CreateUser; + uni.State = 1; + uni.Invoice = "3"; + uni.Currency = p_Po.SubSite; + if (site == "W21") + { + uni.Barcode = "CY03"; + } + else + { + uni.Barcode = "FB06"; + } + + uni.Currency = p_dataRow["BOM版本"].ToString(); + uni.Receiver = "I";//订单类型 + uni.SubSite = p_AskDetail.Extend1; + unilist.Add(uni); + } + return unilist; + } + private static List CreateManyPoDetailSubPart(TB_PO p_Po, TB_ASK p_Ask, TB_PO_DETAIL p_PoDetail, TB_ASK_DETAIL p_AskDetail, DataRow p_dataRow, string site, ScpEntities db) + { + List posublist = new List(); + var _bom = p_dataRow["BOM版本"].ToString(); + var subpart = db.TA_SubPartCode.Where(p => p.PartCode == p_PoDetail.PartCode && p.BOMedtiton == _bom).ToList(); + foreach (var sub in subpart) + { + TB_PO_SUBDETAIL posub = new TB_PO_SUBDETAIL(); + posub.PoBillNum = p_Po.PoBillNum; + posub.PartCode = p_PoDetail.PartCode; + posub.SubPartCode = sub.SubPartCode; + posub.BOMedtiton = sub.BOMedtiton; + posub.Qty = p_PoDetail.PlanQty; + posub.SubQty = p_PoDetail.PlanQty * sub.Qty; + posub.PoLine = p_PoDetail.PoLine; + posublist.Add(posub); + } + + + return posublist; + } + private static List CreateManyAskSubPart(TB_PO p_Po, TB_ASK p_Ask, TB_PO_DETAIL p_PoDetail, TB_ASK_DETAIL p_AskDetail, DataRow p_dataRow, string site, ScpEntities db) + { + List asksublist = new List(); + var _bom = p_dataRow["BOM版本"].ToString(); + var subpart = db.TA_SubPartCode.Where(p => p.PartCode == p_PoDetail.PartCode && p.BOMedtiton == _bom).ToList(); + foreach (var sub in subpart) + { + TA_ASK_SUBPART asksub = new TA_ASK_SUBPART(); + asksub.PartCode = p_PoDetail.PartCode; + asksub.SubPartCode = sub.SubPartCode; + asksub.BOMedtiton = sub.BOMedtiton; + asksub.Qty = p_PoDetail.PlanQty*sub.Qty; + asksub.AskBillNum = p_AskDetail.PoBillNum; + + asksublist.Add(asksub); + } + + + return asksublist; + } + private static TB_PO CreatePo1(List p_poList, DataRow p_dataRow, DateTime p_PoBillTime, string str,string site ) + { + var _VendId = p_dataRow["供应商编号"].ToString(); + var po = p_poList.FirstOrDefault(p => p.VendId == _VendId + && p.EndTime == p_PoBillTime); + if (po != null) return po; + TB_PO _po = new TB_PO(); + _po.PoBillNum = Guid.NewGuid().ToString(); // + _po.VendId = p_dataRow["供应商编号"].ToString(); + _po.Buyer = p_dataRow["采购员"].ToString(); + _po.ErpBillNum = _po.PoBillNum; + _po.ModType = (int)BillFwModType.Contract; + _po.BuyerPhone = p_dataRow["采购员电话"].ToString(); + _po.Site = site; + _po.State = (int)PoState.Open; + _po.GUID = Guid.NewGuid(); + _po.IsDeleted = false; + _po.CreateTime = DateTime.Now; + _po.CreateUser = str; + _po.BeginTime = DateTime.Now; + _po.EndTime = p_PoBillTime; + if (site == "U32") + { + _po.Remark = p_dataRow["备注"].ToString(); + } + p_poList.Add(_po); + return _po; + } + private static TB_PO CreatePoQh(List p_poList, DataRow p_dataRow, DateTime p_PoBillTime, string str, string site) + { + var _VendId = p_dataRow["供应商编号"].ToString(); + var po = p_poList.FirstOrDefault(p => p.VendId == _VendId + && p.EndTime == p_PoBillTime); + if (po != null) return po; + TB_PO _po = new TB_PO(); + _po.PoBillNum = Guid.NewGuid().ToString(); // + _po.VendId = p_dataRow["供应商编号"].ToString(); + _po.Buyer = p_dataRow["采购员"].ToString(); + _po.ErpBillNum = _po.PoBillNum; + _po.ModType = (int)BillFwModType.Qh_Contract; + _po.BuyerPhone = p_dataRow["采购员电话"].ToString(); + _po.Site = site; + _po.State = (int)PoState.Open; + _po.GUID = Guid.NewGuid(); + _po.IsDeleted = false; + _po.CreateTime = DateTime.Now; + _po.CreateUser = str; + _po.BeginTime = DateTime.Now; + _po.EndTime = p_PoBillTime; + + if (site == "U32") + { + _po.Remark = p_dataRow["备注"].ToString(); + } + _po.UpdateInfo="Y"; + p_poList.Add(_po); + return _po; + } + + private static TB_ASK CreateAsk1(List p_poList, List p_askList, DataRow p_dataRow, DateTime p_PoBillTime, string str, ScpEntities db,string site ) + { + var _VendId = p_dataRow["供应商编号"].ToString(); + var _po = p_poList.FirstOrDefault(p => p.VendId == _VendId + && p.EndTime == p_PoBillTime); + var _Ask = p_askList.FirstOrDefault(p => p.VendId == _VendId + && p.EndTime == p_PoBillTime); + if (_Ask != null) return _Ask; + int _num = 1; + TB_ASK _ask = new TB_ASK(); + _ask.AskBillNum = "1"; + _ask.GUID = Guid.NewGuid(); + _ask.PoBillNum = _po.PoBillNum; + _ask.VendId = _po.VendId; + _ask.IsDeleted = false; + _ask.CreateTime = DateTime.Now; + _ask.CreateUser = str; + _ask.Site = site; + _ask.ReceivedPort = "";//交货口 + _ask.State = (int)AskState.New; + //_ask.State = (int)AskState.Release; + _ask.ModType = 2; + _ask.ErpBillNum = _po.PoBillNum; + _ask.BeginTime = DateTime.Parse(_po.BeginTime.ToString()); + _ask.Buyer = _po.Buyer; + _ask.BuyerPhone = _po.BuyerPhone; + _ask.EndTime = p_PoBillTime; + _ask.SubSite = site; + if (site == "U32") + { + _ask.Remark = p_dataRow["备注"].ToString(); + } + p_askList.Add(_ask); + return _ask; + } + + private static TB_ASK_DETAIL CreateAskDetail1(ScpEntities db, DataRow p_dataRow, TB_PO p_Po, TB_ASK p_Ask, TB_PO_DETAIL p_PoDetail, string str,string site) + { + TB_ASK_DETAIL _tDetail = new TB_ASK_DETAIL(); + + _tDetail.PoBillNum = p_Po.PoBillNum; + _tDetail.AskBillNum = p_Ask.AskBillNum; + _tDetail.PoLine = p_PoDetail.PoLine; + _tDetail.PoUnit = p_PoDetail.PoUnit; + _tDetail.CreateTime = DateTime.Now; + _tDetail.CreateUser = str; + _tDetail.PartCode = p_PoDetail.PartCode; + _tDetail.BeginTime = DateTime.Now; + _tDetail.EndTime = p_PoDetail.EndTime; + _tDetail.TempQty = 0; + _tDetail.AskQty = p_PoDetail.PlanQty; + _tDetail.IsDeleted = false; + _tDetail.LocUnit = p_PoDetail.LocUnit; + _tDetail.UnConv = 1; + _tDetail.SubSite = p_dataRow["零件号"].ToString(); + if (!string.IsNullOrEmpty(_tDetail.SubSite.ToString())) + { + var _vender2 = db.TA_Appliance.FirstOrDefault(t => t.PartNumber == _tDetail.SubSite.ToUpper() && t.VendID == p_Po.VendId); + _tDetail.Extend1 = _vender2.ReceivingPort;//收货口 + _tDetail.Extend2 = _vender2.Model;//车型 + _tDetail.Extend3 = _vender2.Texture;//材质 + } + var part = db.TA_PART.SingleOrDefault(t => t.PartCode == _tDetail.PartCode); + _tDetail.DockCode = part.PartGroup; + + _tDetail.State = (int)PoState.Open; + _tDetail.Currency = part.PartDesc2;//规格 + _tDetail.GUID = Guid.NewGuid(); + _tDetail.Price = p_PoDetail.Price; + _tDetail.Remark = p_Po.VendId; + _tDetail.Remark1 = p_Po.VendId; + if (site == "U32") + { + _tDetail.Remark = p_dataRow["备注"].ToString(); + } + return _tDetail; + } + + private static TB_PO_DETAIL CreatePoDetail1(DataRow p_dataRow, decimal p_Qty, ScpEntities db, DateTime p_PoBillTime, TB_PO p_Po, TB_ASK p_Ask, string str,string site) + { + int _rowNumber = 1; + TB_PO_DETAIL _detail = new TB_PO_DETAIL(); + _detail.PartCode= p_dataRow["物料号码"].ToString(); + _detail.PoBillNum = p_Po.PoBillNum; + _detail.PoUnit = p_dataRow["单位"].ToString(); + _detail.Extend1 = p_dataRow["零件号"].ToString(); + _detail.Currency = "CNY"; + _detail.PoLine = _rowNumber; + _detail.CreateTime = DateTime.Parse(p_dataRow["订单创建时间"].ToString()); + _detail.BeginTime = DateTime.Now; + _detail.IsDeleted = false; + _detail.UnConv = 1; + _detail.State = (int)PoState.Open; + _detail.GUID = Guid.NewGuid(); + _detail.Site = site; + _detail.EndTime = p_PoBillTime; + _detail.PlanQty = p_Qty; + _detail.CreateUser = str; + var _price = db.TB_PRICE.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId); + if (_price == 0) + { + var _price1 = db.TA_PART.SingleOrDefault(t => t.PartCode == _detail.PartCode.ToUpper()); + _detail.Price = decimal.Parse(_price1.Remark); + } + else + { + var _price2 = db.TB_PRICE.Where(t => t.PartCode == _detail.PartCode.ToUpper()&&t.VendId==p_Po.VendId).Select(r => r.EndTime).Max(); + var _price8 = db.TB_PRICE.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId).Select(r => r.StartTime).Max(); + DateTime dateTime = DateTime.Now; + if(_price2> dateTime|| _price2 ==dateTime) + { + var _price3 = db.TB_PRICE.FirstOrDefault(t => t.PartCode == _detail.PartCode.ToUpper() && t.EndTime == _price2 && t.VendId == p_Po.VendId); + _detail.Price = _price3.Amt; + } + else + { + var _price4 = db.TA_PART.FirstOrDefault(t => t.PartCode == _detail.PartCode.ToUpper()); + _detail.Price = decimal.Parse(_price4.Remark); + } + + } + _detail.Extend2 = p_dataRow["存储地点"].ToString(); + _detail.CreateUser = p_dataRow["采购组"].ToString();//采购组 + _rowNumber++; + return _detail; + } + private static TB_PO_DETAIL CreatePoDetail1Qh(DataRow p_dataRow, decimal p_Qty, ScpEntities db, DateTime p_PoBillTime, TB_PO p_Po, TB_ASK p_Ask, string str, string site) + { + int _rowNumber = 1; + TB_PO_DETAIL _detail = new TB_PO_DETAIL(); + _detail.PartCode = p_dataRow["物料号码"].ToString(); + _detail.PoBillNum = p_Po.PoBillNum; + _detail.PoUnit = p_dataRow["单位"].ToString(); + _detail.Extend1 = p_dataRow["零件号"].ToString(); + _detail.Currency = "CNY"; + _detail.PoLine = _rowNumber; + _detail.CreateTime = DateTime.Parse(p_dataRow["订单创建时间"].ToString()); + _detail.BeginTime = DateTime.Now; + _detail.IsDeleted = false; + _detail.UnConv = 1; + _detail.State = (int)PoState.Open; + _detail.GUID = Guid.NewGuid(); + _detail.Site = site; + _detail.EndTime = p_PoBillTime; + _detail.PlanQty = p_Qty; + _detail.CreateUser = str; + var _price = db.TB_PRICE.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId); + if (_price == 0) + { + var _price1 = db.TA_PART.SingleOrDefault(t => t.PartCode == _detail.PartCode.ToUpper()); + _detail.Price = decimal.Parse(_price1.Remark); + } + else + { + var _price2 = db.TB_PRICE.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId).Select(r => r.EndTime).Max(); + var _price8 = db.TB_PRICE.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId).Select(r => r.StartTime).Max(); + DateTime dateTime = DateTime.Now; + if (_price2 > dateTime || _price2 == dateTime) + { + var _price3 = db.TB_PRICE.FirstOrDefault(t => t.PartCode == _detail.PartCode.ToUpper() && t.EndTime == _price2 && t.VendId == p_Po.VendId); + _detail.Price = _price3.Amt; + } + else + { + var _price4 = db.TA_PART.FirstOrDefault(t => t.PartCode == _detail.PartCode.ToUpper()); + _detail.Price = decimal.Parse(_price4.Remark); + } + + } + _detail.Extend2 = p_dataRow["存储地点"].ToString(); + _detail.CreateUser = p_dataRow["采购组"].ToString();//采购组 + _detail.UpdateInfo = p_dataRow["供应商编号"].ToString(); + _rowNumber++; + + + return _detail; + } + private static TS_UNI_API CreateTsuniapi1(TB_PO p_Po, TB_ASK p_Ask, TB_PO_DETAIL p_PoDetail, DataRow p_dataRow,TB_ASK_DETAIL _Askdetail,string site) + { + + TS_UNI_API uni = new TS_UNI_API(); + + uni.InterfaceType = "Pobillnum"; //订单标识 + uni.TableName = "TS_UNI_API"; + uni.BillType = (int)BillType.ReHandleVin; + uni.SubBillType = 0; + uni.BillNum = p_Po.PoBillNum;//订单号 + uni.PartCode = p_PoDetail.PartCode; //零件号 + uni.Buyer = p_Po.Buyer;//采购员 + uni.BuyerPhone = p_Po.BuyerPhone;//采购员电话 + uni.ModType = p_PoDetail.CreateUser;//采购组 + uni.Qty = p_PoDetail.PlanQty;//零件数量 + uni.CreateOper = p_Po.CreateUser; + uni.CreateTime = p_Po.CreateTime;//订单创建时间 + uni.PutTime = ScpCache.GetServerTime(); + uni.VendId = p_Po.VendId;//供应商编号 + uni.PoUnit = p_PoDetail.PoUnit;//零件单位 + uni.LocUnit = p_PoDetail.LocUnit;//组件单位 + uni.ValidDate = DateTime.Now;//当前系统时间 + uni.ErpLineNum = 1;//订单行号 + uni.Price = p_PoDetail.Price;//零件价格 + uni.Site = p_Po.Site;//地点 + uni.Extend3 = p_dataRow["存储地点"].ToString(); + uni.Domain = site; + uni.Extend2 = "N";//退货凭证 + uni.PutTime = DateTime.Parse(p_PoDetail.EndTime.ToString()); //要求到货日期 + uni.Batch = p_PoDetail.PoUnit;//采购计量单位 + uni.VendBatch = p_PoDetail.CreateUser; + uni.State = 1; + uni.Invoice = "0"; + if (p_Po.Site == "W21") + { + uni.Barcode = "CY01"; + } + else{ + uni.Barcode = "FB03"; + } + + uni.Currency = p_PoDetail.Extend3; + uni.Receiver = "I"; + uni.SubSite = _Askdetail.Extend1; + if (site == "U32") + { + uni.Attn = p_dataRow["备注"].ToString(); + } + return uni; + } + private static TS_UNI_API CreateTsuniapiQh(TB_PO p_Po, TB_ASK p_Ask, TB_PO_DETAIL p_PoDetail, DataRow p_dataRow, TB_ASK_DETAIL _Askdetail, string site) + { + + TS_UNI_API uni = new TS_UNI_API(); + + uni.InterfaceType = "Pobillnum"; //订单标识 + uni.TableName = "TS_UNI_API"; + uni.BillType = (int)BillType.ReHandleVin; + uni.SubBillType = 0; + uni.BillNum = p_Po.PoBillNum;//订单号 + uni.PartCode = p_PoDetail.PartCode; //零件号 + uni.Buyer = p_Po.Buyer;//采购员 + uni.BuyerPhone = p_Po.BuyerPhone;//采购员电话 + uni.ModType = p_PoDetail.CreateUser;//采购组 + uni.Qty = p_PoDetail.PlanQty;//零件数量 + uni.CreateOper = p_Po.CreateUser; + uni.CreateTime = p_Po.CreateTime;//订单创建时间 + uni.PutTime = ScpCache.GetServerTime(); + uni.VendId = p_Po.VendId;//供应商编号 + uni.PoUnit = p_PoDetail.PoUnit;//零件单位 + uni.LocUnit = p_PoDetail.LocUnit;//组件单位 + uni.ValidDate = DateTime.Now;//当前系统时间 + uni.ErpLineNum = 1;//订单行号 + uni.Price = p_PoDetail.Price;//零件价格 + uni.Site = p_Po.Site;//地点 + uni.Extend3 = p_dataRow["存储地点"].ToString(); + uni.Domain = site; + uni.Extend2 = "N";//退货凭证 + uni.PutTime = DateTime.Parse(p_PoDetail.EndTime.ToString()); //要求到货日期 + uni.Batch = p_PoDetail.PoUnit;//采购计量单位 + uni.VendBatch = p_PoDetail.CreateUser; + uni.State = 1; + uni.Invoice = "0"; + if (p_Po.Site == "W21") + { + uni.Barcode = "CY01"; + } + else + { + uni.Barcode = "FB03"; + } + + uni.Currency = p_PoDetail.Extend3; + uni.Receiver = "I"; + uni.SubSite = _Askdetail.Extend1; + uni.SubSite = "Y"; + return uni; + } + public static List EXCEL_ASK_Check(List p_order_list) + { + List ErrorList = new List(); + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + p_order_list.ForEach + (p => + { + //var _ls = CheckExcel(db, p); + var _checkls = CheckExcelPackQty(db, p); + if (_checkls.Count > 0) + { + ErrorList.Add(string.Join("
", _checkls.ToArray())); + } + }); + } + return ErrorList; + } + public static ResultObject EXCEL_PO_TO_ASK(List p_order_list, string p_creator, string p_buyer, DateTime p_time, BillModType p_modtype, string p_site, bool IsAutoPublish = false) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + p_order_list.ForEach + (p => + { + var _ls = CheckExcel(db, p); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + } + number++; + + }); + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + p_order_list = p_order_list.Where(p => int.Parse(p.数量) != 0).ToList(); + + + //var VenderList = p_order_list.Select(p => p.供应商编号).Distinct(); + //var PartCodeList = p_order_list.Select(p => p.零件号).Distinct(); + var OrderList = p_order_list.GroupBy(p => new { p.分组编号, p.供应商编号 }).ToList(); + OrderList.ForEach((p) => + { + var list_distinct = p.GroupBy(t => new { t.零件号, t.行号 }).ToList(); + var list = p.ToList(); + if (list_distinct.Count < list.Count) + { + _ret.MessageList.Add("相同组号,存在同一编号、行号的数据"); + return; + } + if (list.Count > 0) + { + + var _entity = list.FirstOrDefault(); + TB_ASK _ask = new TB_ASK(); + _ask.AskBillNum = SCP_BILLCODE_CONTROLLER.MakeASKCode(); + _ask.State = (int)AskState.New; + _ask.PoBillNum = _entity.QAD订单号.ToUpper(); + _ask.ModType = (int)BillModType.Contract; + _ask.Site = p_site; + if (IsAutoPublish) + { + _ask.State = (int)AskState.Release; + } + else + { + _ask.State = (int)AskState.New; + } + _ask.BeginTime = DateTime.Now; + _ask.Buyer = _entity.交货联系人; + _ask.BuyerPhone = _entity.交货联系人电话; + _ask.ErpBillNum = _entity.QAD订单号.ToUpper(); + _ask.EndTime = DateTime.Parse(_entity.要求到货日期); + _ask.CreateTime = DateTime.Now; + _ask.CreateUser = p_creator; + _ask.VendId = _entity.供应商编号.ToUpper(); + _ask.GUID = Guid.NewGuid(); + _ask.IsDeleted = false; + db.TB_ASK.Add(_ask); + + #region 供应商新任务代办接口 + TB_PENING_ITEMS _item = new TB_PENING_ITEMS(); + _item.ROLE_NAME = "供应商"; + _item.ITEM_NO = _ask.AskBillNum; + _item.ITEM_CONTENT = "要货看盘有信息"; + _item.ITEM_TYPE = (int)PENDING_MESSAGE_TYPE.NEW_ASK; + _item.VEND_ID = _ask.VendId; + _item.ITEM_STATE = (int)PENDING_STATE.WAITING; + _item.SENDER = _entity.交货联系人; + _item.SENDING_TIME = DateTime.Now; + db.TB_PENING_ITEMS.Add(_item); + #endregion + + // int _number = 1; + list.ForEach((itm) => + { + TB_ASK_DETAIL _t_ASK_Detail = new TB_ASK_DETAIL(); + //_t_ASK_Detail.PoLine = _number; + _t_ASK_Detail.PoLine = Int32.Parse(itm.行号); + _t_ASK_Detail.Currency = itm.币种; + _t_ASK_Detail.AskBillNum = _ask.AskBillNum; + _t_ASK_Detail.PoBillNum = _ask.PoBillNum; + _t_ASK_Detail.PoUnit = itm.单位; + _t_ASK_Detail.CreateTime = DateTime.Now; + _t_ASK_Detail.CreateUser = _ask.CreateUser; + _t_ASK_Detail.PartCode = (itm.零件号.ToUpper()).TrimEnd(); + _t_ASK_Detail.BeginTime = _ask.BeginTime; + _t_ASK_Detail.EndTime = DateTime.Parse(itm.要求到货日期); + _t_ASK_Detail.TempQty = decimal.Parse(itm.数量); + _t_ASK_Detail.AskQty = decimal.Parse(itm.数量); + _t_ASK_Detail.IsDeleted = false; + _t_ASK_Detail.LocUnit = itm.单位; + _t_ASK_Detail.UnConv = 1; + _t_ASK_Detail.State = _ask.State; + _t_ASK_Detail.Price = string.IsNullOrEmpty(itm.价格) ? 0 : decimal.Parse(itm.价格); + _t_ASK_Detail.GUID = Guid.NewGuid(); + _t_ASK_Detail.Remark = itm.备注; + db.TB_ASK_DETAIL.Add(_t_ASK_Detail); + // _number++; + + }); + } + else + { + _ret.MessageList.Add("ERP订单编号已存在,请重新导入!"); + return; + } + + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + ); + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + if (e.InnerException != null) + { + _ret.MessageList.Add(e.InnerException.Message); + } + else + { + _ret.MessageList.Add(e.Message); + } + } + return _ret; + + } + + + public static ResultObject Save_PO_TO_ASK(V_TB_PO p_order, List p_order_list + , string p_buyer, string p_buyerPhone, string p_creator) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + TB_ASK _t = new TB_ASK(); + _t.AskBillNum = SCP_BILLCODE_CONTROLLER.MakeASKCode(); + _t.PoBillNum = p_order.PoBillNum; + _t.VendId = p_order.VendId; + _t.IsDeleted = false;//操作员 + _t.CreateTime = DateTime.Now; + _t.CreateUser = p_creator; + _t.Site = p_order.Site; + _t.ReceivedPort = p_order.ReceivedPort; + _t.Remark = p_order.Remark; + _t.State = (int)AskState.New; + _t.SubSite = p_order.SubSite; + _t.Extend1 = p_order.Extend1; + _t.Extend2 = p_order.Extend2; + _t.Extend3 = p_order.Extend3; + + _t.GUID = Guid.NewGuid(); + _t.ModType = (int)p_order.ModType; + _t.ErpBillNum = p_order.ErpBillNum; + _t.BeginTime = (DateTime)p_order.BeginTime; + var _date = p_order.BeginTime; + if (p_order_list.Count > 0) + { + _date = p_order_list[0].EndTime; + } + _t.EndTime = p_order.EndTime; + _t.Buyer = p_buyer; + _t.BuyerPhone = p_buyerPhone; + db.TB_ASK.AddOrUpdate(p => p.AskBillNum, _t); + List _list = new List(); + foreach (var itm in p_order_list) + { + TB_ASK_DETAIL _tDetail = new TB_ASK_DETAIL(); + _tDetail.Remark = _t.Remark; + _tDetail.PoBillNum = _t.PoBillNum; + _tDetail.AskBillNum = _t.AskBillNum; + _tDetail.PoLine = itm.PoLine; + _tDetail.PoUnit = itm.PoUnit; + _tDetail.CreateTime = DateTime.Now; + _tDetail.CreateUser = p_creator; + _tDetail.PartCode = itm.PartCode; + _tDetail.ReceivedPort = itm.ReceivedPort; + _tDetail.BeginTime = itm.BeginTime; + _tDetail.EndTime = _t.EndTime; + _tDetail.TempQty = itm.TempQty == null ? 0 : (decimal)itm.TempQty; + _tDetail.AskQty = (decimal)itm.PublishQty; + _tDetail.IsDeleted = false; + _tDetail.LocUnit = itm.LocUnit; + _tDetail.UnConv = itm.UnConv; + _tDetail.State = (int)p_order.State; + _tDetail.Price = itm.Price; + _tDetail.GUID = Guid.NewGuid(); + _tDetail.Currency = itm.Currency; + _tDetail.Site = itm.Site; + _tDetail.SubSite = itm.SubSite; + _tDetail.Extend1 = itm.Extend1; + _tDetail.Extend2 = itm.Extend2; + _tDetail.Extend3 = itm.Extend3; + db.TB_ASK_DETAIL.Add(_tDetail); + var _order_detail = db.TB_PO_DETAIL.Where(p => p.UID == itm.UID).FirstOrDefault(); + _order_detail.TempQty = itm.TempQty; + db.TB_PO_DETAIL.AddOrUpdate(p => p.UID, _order_detail); + } + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + public static ResultObject ToVoid_ts_uni_api(List ls,List part) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + var pp = ls.First(); + var billnum = db.TB_PO_DETAIL.Count(p => p.PoBillNum == pp && p.State > 0); + if (billnum == ls.Count) + { + var po1 = db.TB_PO.FirstOrDefault(t => t.PoBillNum == pp && t.State == 1); + po1.State = 0; + db.TB_PO.AddOrUpdate(po1); + var ask1 = db.TB_ASK.FirstOrDefault(t => t.PoBillNum == pp && t.State > -1); + ask1.State = -1; + ask1.IsDeleted = true; + db.TB_ASK.AddOrUpdate(ask1); + } + foreach(var po in ls) + { + foreach(var pa in part) + { + var asn = db.TB_ASN_DETAIL.Count(p => p.PartCode == pa && p.PoBillNum == po&&p.State>=0); + if (asn > 0) + { + _ret.MessageList.Add("零件号"+pa+"已经存在发货单,订单明细作废失败"); + } + else + { + var ponum = db.TB_PO_DETAIL.Where(p => p.PartCode == pa && p.PoBillNum == po&&p.State>0).ToList(); + foreach(var poo in ponum) + { + poo.State = 0; + db.TB_PO_DETAIL.AddOrUpdate(poo); + } + + var ask = db.TB_ASK_DETAIL.Where(p => p.PartCode == pa && p.PoBillNum == po).ToList(); + foreach (var askk in ask) + { + askk.State = -1; + askk.IsDeleted = true; + db.TB_ASK_DETAIL.AddOrUpdate(askk); + } + var uni = db.TS_UNI_API.Where(p => p.PartCode == pa && p.BillNum == po&&p.Receiver=="I"); + foreach(var un in uni) + { + un.State = 1; + un.Receiver = "D"; + db.TS_UNI_API.AddOrUpdate(un); + } + var coust = db.TB_MAXPO_CONSUME.Where(t => t.BillNum == po&&t.PartCode==pa).ToList(); + foreach (var co in coust) + { + var maxpo = db.TB_MAXPO_DETAIL.FirstOrDefault(t => t.PoBillNum == co.PoBillNum && t.PartCode == co.PartCode); + maxpo.SurplusQty = maxpo.SurplusQty + co.PoQty; + } + } + } + } + + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; } - /// - /// 北京安通林 - /// - /// - /// - /// - /// - /// - /// - public static ResultObject EXCEL_PO_TO_ASK_MOD(List p_order_list, string p_creator, string p_buyer, DateTime p_time, BillModType p_modtype, bool IsAutoPublish = false) + public static ResultObject Save_ts_uni_api(List ls) { ResultObject _ret = new ResultObject(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - p_order_list.ForEach(p => + { - if (string.IsNullOrEmpty(p.订单数)) + int number = 1; + List lineError = new List(); + List ErrorList = new List(); + + foreach (var po in ls) { - p.订单数 = "0"; + var _ls = CheckExce2(db, po); + if (_ls.Count > 0) + { + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + number++; + } + if (lineError.Count > 0) + { + _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); + _ret.Result = false; + } + else + { + var po1 = db.TB_PO.FirstOrDefault(t => t.PoBillNum == po&&t.State==1); + + po1.State = 0; + db.TB_PO.AddOrUpdate(po1); + var po2 = db.TB_PO_DETAIL.Where(t => t.PoBillNum == po&&t.State==1).ToList(); + foreach (var po3 in po2) + { + po3.State = 0; + db.TB_PO_DETAIL.AddOrUpdate(po3); + } + var ask1 = db.TB_ASK.FirstOrDefault(t => t.PoBillNum == po && t.State > -1); + ask1.State = -1; + ask1.IsDeleted = true; + db.TB_ASK.AddOrUpdate(ask1); + var ask2 = db.TB_ASK_DETAIL.Where(t => t.PoBillNum == po&&t.State>-1).ToList(); + foreach (var ask3 in ask2) + { + ask3.State = -1; + db.TB_ASK_DETAIL.AddOrUpdate(ask3); + } + var lx = db.TS_UNI_API.Where(t => t.BillNum == po&&t.Receiver=="I").ToList(); + foreach (var po4 in lx) + { + po4.State = 1; + po4.Receiver = "D"; + db.TS_UNI_API.AddOrUpdate(po4); + } + var coust = db.TB_MAXPO_CONSUME.Where(t => t.BillNum == po).ToList(); + if (coust.Count() > 0) + { + foreach (var co in coust) + { + var maxpo = db.TB_MAXPO_DETAIL.FirstOrDefault(t => t.PoBillNum == co.PoBillNum && t.PartCode == co.PartCode); + maxpo.SurplusQty = maxpo.SurplusQty + co.PoQty; + db.TB_MAXPO_CONSUME.Remove(co); + } + } + + + } } - }); + } - int number = 1; - List lineError = new List(); - List ErrorList = new List(); - var _lst = p_order_list.Where(p => p.订单数 != "0").ToList(); - _lst.ForEach - (p => + if (_ret.MessageList.Count == 0) { - var _ls = CheckExcelMode(db, p); - if (_ls.Count > 0) + int state = db.SaveChanges(); + if (state != -1) { - lineError.Add(number.ToString()); - ErrorList.Add(string.Join("
", _ls.ToArray())); + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; } - number++; - }); - if (lineError.Count > 0) + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else { _ret.State = ReturnStatus.Failed; - _ret.MessageList.AddRange(ErrorList); _ret.Result = false; } - else + + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => { - var VenderList = _lst.Select(p => p.供应商编码).Distinct(); - var PartCodeList = _lst.Select(p => p.零件编码).Distinct(); - var OrderList = _lst.GroupBy(p => p.订单编号).ToList(); - OrderList.ForEach((p) => + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + public static ResultObject Maxpo_ts_uni_api(List maxpo) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + { + foreach(var po in maxpo) { - var list = p.ToList(); - if (list.Count > 0) + var _list = db.TB_MAXPO_DETAIL.Where(p=>p.PoBillNum==po).ToList(); + foreach(var _li in _list) { - var _entity = list.FirstOrDefault(); - TB_ASK _ask = new TB_ASK(); - _ask.AskBillNum = SCP_BILLCODE_CONTROLLER.MakeASKCode(); - _ask.VendId = _entity.供应商编码; - _ask.State = (int)AskState.New; - _ask.PoBillNum = _entity.订单编号; - _ask.ModType = (int)BillModType.Contract; - _ask.Site = _entity.域名; - _ask.Remark = _entity.站点; - if (IsAutoPublish) + if (_li.OrderQtykg != _li.SurplusQty) { - _ask.State = (int)AskState.Release; + _ret.MessageList.Add("大订单号" + _li.PoBillNum + "已经开始期货订单消耗,作废失败"); } else { - _ask.State = (int)AskState.New; - } - _ask.BeginTime = DateTime.Parse(_entity.订货日期); - _ask.Buyer = p_buyer; - _ask.BuyerPhone = _entity.计划员电话; - _ask.ErpBillNum = _entity.项目编号; - _ask.EndTime = DateTime.Parse(_entity.到货日期); - _ask.CreateTime = DateTime.Now; - _ask.CreateUser = p_creator; - _ask.VendId = _entity.供应商编码; - _ask.GUID = Guid.NewGuid(); - _ask.ReceivedPort = _entity.收货口; - _ask.IsDeleted = false; - db.TB_ASK.Add(_ask); - #region 供应商新任务代办接口 - TB_PENING_ITEMS _item = new TB_PENING_ITEMS(); - _item.ROLE_NAME = "供应商"; - _item.ITEM_NO = _ask.AskBillNum; - _item.ITEM_CONTENT = "要货看盘有信息"; - _item.ITEM_TYPE = (int)PENDING_MESSAGE_TYPE.NEW_ASK; - _item.VEND_ID = _ask.VendId; - _item.ITEM_STATE = (int)PENDING_STATE.WAITING; - _item.SENDER = p_buyer; - _item.SENDING_TIME = DateTime.Now; - db.TB_PENING_ITEMS.Add(_item); - #endregion - // int _number = 1; - List _ls = new List(); - list.ForEach((itm) => - { - var _number = _ls.Count(p1 => p1.PoBillNum == _ask.PoBillNum - && p1.PoLine == Int32.Parse(itm.行号) && p1.PartCode == itm.零件编码 && itm.域名 == p1.Remark); - if (_number > 0) + UniApiEntities idb = EntitiesFactory.CreateUniApiInstance(); + var _wmsret = idb.xxwms_rc_det.Where(p=>p.xxwms_rc_ware_class.Contains(_li.PoBillNum)).ToList(); + if (_wmsret.Count() > 0) { - _ret.MessageList.Add(string.Format("已经存在订单为{0}行号为{1}零件编码为{2}", itm.订单编号, itm.行号, itm.零件编码)); + _ret.MessageList.Add("大订单号" + _li.PoBillNum + "已经开始收货消耗,作废失败"); } - - TB_ASK_DETAIL _t_ASK_Detail = new TB_ASK_DETAIL(); - - _t_ASK_Detail.PoLine = Int32.Parse(itm.行号); - _t_ASK_Detail.Currency = itm.币种; - _t_ASK_Detail.AskBillNum = _ask.AskBillNum; - _t_ASK_Detail.PoBillNum = _ask.PoBillNum; - _t_ASK_Detail.PoUnit = itm.单位; - _t_ASK_Detail.CreateTime = DateTime.Now; - _t_ASK_Detail.CreateUser = _ask.CreateUser; - _t_ASK_Detail.PartCode = itm.零件编码; - _t_ASK_Detail.BeginTime = DateTime.Parse(itm.订货日期); - _t_ASK_Detail.EndTime = DateTime.Parse(itm.到货日期); - _t_ASK_Detail.TempQty = decimal.Parse(itm.订单数); - _t_ASK_Detail.AskQty = decimal.Parse(itm.订单数); - _t_ASK_Detail.IsDeleted = false; - _t_ASK_Detail.LocUnit = itm.单位; - _t_ASK_Detail.UnConv = 1; - _t_ASK_Detail.DockCode = itm.收货口; - _t_ASK_Detail.State = _ask.State; - _t_ASK_Detail.Price = string.IsNullOrEmpty(itm.价格) ? 0 : decimal.Parse(itm.价格); - _t_ASK_Detail.GUID = Guid.NewGuid(); - _t_ASK_Detail.Remark = _ask.Site; - _t_ASK_Detail.UpdateInfo = itm.备注; - db.TB_ASK_DETAIL.Add(_t_ASK_Detail); - _ls.Add(_t_ASK_Detail); - // _number++; - }); - } - else - { - _ret.MessageList.Add("ERP订单编号已存在,请重新导入!"); - + } } - if (_ret.MessageList.Count == 0) + } + if(_ret.MessageList.Count == 0) + { + foreach (var po in maxpo) { - int state = db.SaveChanges(); - if (state != -1) - { - _ret.State = ReturnStatus.Succeed; - _ret.Result = true; - } - else + var _maxpo = db.TB_MAXPO.FirstOrDefault(p=>p.PoBillNum== po); + _maxpo.IsDeleted = true; + db.TB_MAXPO.AddOrUpdate(_maxpo); + var _maxpodetail=db.TB_MAXPO_DETAIL.Where(p => p.PoBillNum == po).ToList(); + _maxpodetail.ForEach(itm => itm.IsDeleted = true); + db.TB_MAXPO_DETAIL.AddOrUpdate(itm => itm.UID, _maxpodetail.ToArray()); + var _Ts = db.TS_UNI_API.Where(p => p.BillNum == po).ToList(); + foreach(var ts in _Ts) { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; + ts.Extend3 = "D"; + ts.State = 1; + db.TS_UNI_API.AddOrUpdate(ts); } } - else - { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; - } } - ); } + + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + else + { + _ret.MessageList= _ret.MessageList.Distinct().ToList(); + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 @@ -1879,7 +8122,7 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(dbEx); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", sb.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", sb.ToString()); throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); } catch (OptimisticConcurrencyException ex)//并发冲突异常 @@ -1888,7 +8131,7 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); } catch (ScpException ex) @@ -1898,7 +8141,7 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) { @@ -1915,96 +8158,49 @@ namespace CK.SCP.Controller catch (Exception e) { _ret.State = ReturnStatus.Failed; - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", e.Message); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", e.Message); _ret.Result = false; _ret.ErrorList.Add(e); throw e; } return _ret; - } - /// - /// 供应商零件导入 - /// - /// - /// - /// - /// - public static ResultObject EXCEL_VENDER_PART_MOD(List p_order_list, string site, string p_creator) + public static ResultObject Maxpodetail_ts_uni_api(List Uid) { ResultObject _ret = new ResultObject(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - int number = 1; - List lineError = new List(); - List ErrorList = new List(); - var _lst = p_order_list; - _lst.ForEach(p => + { - var _count = _lst.Count(itm => itm.供应商代码 == p.供应商代码 && itm.零件号 == p.零件号); - if (_count > 1) + foreach (var ui in Uid) { - lineError.Add(string.Format("导入的供应商{0}零件编号{1}有重复", p.供应商代码, p.零件号)); - ErrorList = lineError; + var maxpodetail = db.V_TB_MAXPO_DETAIL.FirstOrDefault(p=>p.UID.ToString()==ui); + if (maxpodetail.SurplusQty != maxpodetail.OrderQtykg || maxpodetail.AnQty > 0 || maxpodetail.ReceQty > 0) + { + _ret.MessageList.Add("零件号"+maxpodetail.PartCode+"已经开始消耗,作废失败!"); + } } - }); - _lst.ForEach(p => - { - var _ls = CheckExcelMode_VenderPart(db, p, site); - if (_ls.Count > 0) + if (_ret.MessageList.Count == 0) { - lineError.Add(number.ToString()); - ErrorList.Add(string.Join("
", _ls.ToArray())); + foreach (var ui in Uid) + { + var maxpodetail = db.V_TB_MAXPO_DETAIL.FirstOrDefault(p => p.UID.ToString() == ui); + var uni = db.TS_UNI_API.FirstOrDefault(p=>p.PartCode==maxpodetail.PartCode&&p.BillNum==maxpodetail.PoBillNum); + uni.State = 1; + db.TS_UNI_API.AddOrUpdate(uni); + } } - number++; - }); - if (lineError.Count > 0) - { - _ret.State = ReturnStatus.Failed; - _ret.MessageList.AddRange(ErrorList); - _ret.Result = false; } - else + + if (_ret.MessageList.Count == 0) { - _lst.ForEach(p => - { - var _venderpart = db.TA_VEND_PART.SingleOrDefault(t => t.VendId == p.供应商代码.ToUpper() && t.PartCode == p.零件号.ToUpper()) ?? - new TA_VEND_PART - { - VendId = p.供应商代码.ToUpper(), - PartCode = p.零件号.ToUpper(), - State = 1, - CreateTime = DateTime.Now, - CreateUser = p_creator, - IsDeleted = false, - GUID = System.Guid.NewGuid(), - }; - _venderpart.VendPartCode = p.供应商零件号.ToUpper(); - _venderpart.VendPackQty = decimal.Parse(p.标包数); - _venderpart.MinPackQty = decimal.Parse(p.小包装数); - _venderpart.PalletPackQty = decimal.Parse(p.托盘包装数); - _venderpart.PoUnit = p.单位; - _venderpart.Remark = ""; - _venderpart.UpdateTime = DateTime.Now; - _venderpart.UpdateUser = p_creator; - _venderpart.Site = site; - db.TA_VEND_PART.AddOrUpdate(_venderpart); - }); - if (_ret.MessageList.Count == 0) + int state = db.SaveChanges(); + if (state != -1) { - int state = db.SaveChanges(); - if (state != -1) - { - _ret.State = ReturnStatus.Succeed; - _ret.Result = true; - } - else - { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; - } + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; } else { @@ -2012,8 +8208,14 @@ namespace CK.SCP.Controller _ret.Result = false; } } - } + else + { + _ret.MessageList = _ret.MessageList.Distinct().ToList(); + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 { @@ -2030,7 +8232,7 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(dbEx); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", sb.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", sb.ToString()); throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); } catch (OptimisticConcurrencyException ex)//并发冲突异常 @@ -2039,7 +8241,7 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); } catch (ScpException ex) @@ -2049,7 +8251,7 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) { @@ -2066,91 +8268,37 @@ namespace CK.SCP.Controller catch (Exception e) { _ret.State = ReturnStatus.Failed; - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_PART_MOD", e.Message); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", e.Message); _ret.Result = false; _ret.ErrorList.Add(e); throw e; } return _ret; } - /// - /// 供应商导入 - /// - /// - /// - /// - /// - public static ResultObject EXCEL_VENDER_MOD(List p_order_list, string site, string p_creator) + public static ResultObject Delete_Ta_Subpart() { ResultObject _ret = new ResultObject(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - int number = 1; - List lineError = new List(); - List ErrorList = new List(); - var _lst = p_order_list; - _lst.ForEach(p => - { - var _count = _lst.Count(itm => itm.供应商编号 == p.供应商编号); - if (_count > 1) - { - lineError.Add(string.Format("导入零件编号{0}有重复", p.供应商编号)); - ErrorList = lineError; - } - }); - _lst.ForEach(p => + { - var _ls = CheckExcelMode_Vender(db, p, site); - if (_ls.Count > 0) + var sublist = db.TA_SubPartCode.ToList(); + foreach(var sub in sublist) { - lineError.Add(number.ToString()); - ErrorList.Add(string.Join("
", _ls.ToArray())); + db.TA_SubPartCode.Remove(sub); } - number++; - }); - if (lineError.Count > 0) - { - _ret.State = ReturnStatus.Failed; - _ret.MessageList.AddRange(ErrorList); - _ret.Result = false; + } - else + + if (_ret.MessageList.Count == 0) { - _lst.ForEach(p => - { - var _vender = db.TA_VENDER.SingleOrDefault(t => t.VendId == p.供应商编号.ToUpper()) ?? - new TA_VENDER { VendId = p.供应商编号.ToUpper(), State = 1 }; - _vender.VendName = p.供应商名称; - _vender.VendAbbCode = string.IsNullOrEmpty(p.供应商缩写) ? "0" : p.供应商缩写; - _vender.VendType = p.供应商类型; - _vender.Country = p.国家; - _vender.City = p.城市; - _vender.Currency = p.币种; - _vender.Address = p.地址; - _vender.ZipCode = p.邮编; - _vender.Contacter = p.联系人; - _vender.Phone = p.电话; - _vender.Fax = p.传真; - _vender.Remark = p.备注; - _vender.Tax = Convert.ToDecimal(p.税率); - _vender.Site = site; - db.TA_VENDER.AddOrUpdate(_vender); - }); - if (_ret.MessageList.Count == 0) + int state = db.SaveChanges(); + if (state != -1) { - int state = db.SaveChanges(); - if (state != -1) - { - _ret.State = ReturnStatus.Succeed; - _ret.Result = true; - } - else - { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; - } + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; } else { @@ -2158,8 +8306,13 @@ namespace CK.SCP.Controller _ret.Result = false; } } - } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 { @@ -2176,7 +8329,7 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(dbEx); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_MOD", sb.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", sb.ToString()); throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); } catch (OptimisticConcurrencyException ex)//并发冲突异常 @@ -2185,7 +8338,7 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_MOD", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); } catch (ScpException ex) @@ -2195,7 +8348,7 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_MOD", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) { @@ -2212,82 +8365,78 @@ namespace CK.SCP.Controller catch (Exception e) { _ret.State = ReturnStatus.Failed; - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_VENDER_MOD", e.Message); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", e.Message); _ret.Result = false; _ret.ErrorList.Add(e); throw e; } return _ret; } - /// - /// 价格导入 - /// - /// - /// - /// - /// - public static ResultObject EXCEL_PRICE_MOD(List p_order_list, string site, string p_creator) + public static ResultObject Save_ts_uni_api1(List ls) { ResultObject _ret = new ResultObject(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - int number = 1; - List lineError = new List(); - List ErrorList = new List(); - var _lst = p_order_list; - _lst.ForEach - (p => - { - var _ls = CheckExcelMode_Price(db, p, site); - if (_ls.Count > 0) - { - lineError.Add(number.ToString()); - ErrorList.Add(string.Join("
", _ls.ToArray())); - } - number++; - }); - if (lineError.Count > 0) - { - _ret.State = ReturnStatus.Failed; - _ret.MessageList.AddRange(ErrorList); - _ret.Result = false; - } - else - { - - - + { + int number = 1; + List lineError = new List(); + List ErrorList = new List(); - _lst.ForEach(p => - { - var _price = new TB_PRICE(); - _price.VendId= p.供应商编号.Trim(); - _price.PartCode = p.零件编码.Trim(); - _price.StartTime = DateTime.Parse( p.开始时间); - _price.EndTime = DateTime.Parse(p.结束时间); - _price.Curr = p.币种; - _price.Unit = p.单位; - _price.Amt = decimal.Parse( p.价格); - _price.Site = site.Trim(); - _price.Remarks = p.备注; - db.TB_PRICE.Add(_price); - }); - if (_ret.MessageList.Count == 0) + foreach (var po in ls) { - int state = db.SaveChanges(); - if (state != -1) + var _ls = CheckExce3(db, po); + if (_ls.Count > 0) { - _ret.State = ReturnStatus.Succeed; - _ret.Result = true; + lineError.Add(number.ToString()); + ErrorList.Add(string.Join("
", _ls.ToArray())); + number++; } - else + if (lineError.Count > 0) { _ret.State = ReturnStatus.Failed; + _ret.MessageList.AddRange(ErrorList); _ret.Result = false; } + else + { + var _entity = db.TB_ASK.FirstOrDefault(p => p.AskBillNum.ToString() == po); + _entity.State = -1; + _entity.IsDeleted = true; + db.TB_ASK.AddOrUpdate(_entity); + if (_entity.Site == "U32") + { + var _po = db.TB_PO.FirstOrDefault(P => P.PoBillNum == _entity.PoBillNum); + _po.State = 0; + db.TB_PO.AddOrUpdate(_po); + var _podetail = db.TB_PO_DETAIL.Where(p=>p.PoBillNum==_entity.PoBillNum).ToList(); + _podetail.ForEach(p => + { + p.State = 0; + db.TB_PO_DETAIL.AddOrUpdate(p); + }); + } + + var _entity1 = db.TB_ASK_DETAIL.Where(p => p.AskBillNum.ToString() == po).ToList(); + foreach(var ask in _entity1) + { + ask.State = -1; + ask.IsDeleted = true; + db.TB_ASK_DETAIL.AddOrUpdate(ask); + } + } + } + } + + if (_ret.MessageList.Count == 0) + { + int state = db.SaveChanges(); + if (state != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; } else { @@ -2295,6 +8444,12 @@ namespace CK.SCP.Controller _ret.Result = false; } } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 @@ -2312,7 +8467,7 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(dbEx); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PRICE_MOD", sb.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", sb.ToString()); throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); } catch (OptimisticConcurrencyException ex)//并发冲突异常 @@ -2321,7 +8476,7 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PRICE_MOD", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); } catch (ScpException ex) @@ -2331,7 +8486,7 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PRICE_MOD", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) { @@ -2348,94 +8503,109 @@ namespace CK.SCP.Controller catch (Exception e) { _ret.State = ReturnStatus.Failed; - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PRICE_MOD", e.Message); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", e.Message); _ret.Result = false; _ret.ErrorList.Add(e); throw e; } return _ret; } - /// - /// 零件导入 - /// - /// - /// - /// - /// - public static ResultObject EXCEL_PART_MOD(List p_order_list, string site, string p_creator) + public static void Get_V_TB_PO_DETAIL_OUTPUT_List(V_TB_PO_DETAIL p_entity, Action>> p_action) { - ResultObject _ret = new ResultObject(); + ResultObject> _ret = new ResultObject>(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - int number = 1; - List lineError = new List(); - List ErrorList = new List(); - var _lst = p_order_list; - _lst.ForEach(p => + IQueryable q = db.V_TB_PO_DETAIL; + + if (!string.IsNullOrEmpty(p_entity.PoBillNum)) { - var _count = _lst.Count(itm => itm.零件编号 == p.零件编号); - if (_count > 1) - { - lineError.Add(string.Format("导入零件编号{0}有重复", p.零件编号)); - ErrorList = lineError; - } - }); - _lst.ForEach - (p => + q = q.Where(p => p.PoBillNum == p_entity.PoBillNum); + } + if (!string.IsNullOrEmpty(p_entity.ErpBillNum)) { - var _ls = CheckExcelMode_Part(db, p, site); - if (_ls.Count > 0) - { - lineError.Add(number.ToString()); - ErrorList.Add(string.Join("
", _ls.ToArray())); - } - number++; - }); - if (lineError.Count > 0) + q = q.Where(p => p.ErpBillNum.Contains(p_entity.ErpBillNum)); + } + if (p_entity.BeginTime != null) { - _ret.State = ReturnStatus.Failed; - _ret.MessageList.AddRange(ErrorList); - _ret.Result = false; + q = q.Where(p => p.BeginTime >= p_entity.BeginTime); } - else + if (p_entity.EndTime != null) { - _lst.ForEach(p => + q = q.Where(p => p.BeginTime <= p_entity.EndTime); + } + + if (!string.IsNullOrEmpty(p_entity.VendId)) { - var _part = db.TA_PART.SingleOrDefault(t => t.PartCode == p.零件编号.ToUpper()) ?? - new TA_PART { PartCode = p.零件编号.ToUpper() }; - _part.PartCode = p.零件编号; - _part.ErpPartCode = p.零件编号; - _part.PartDesc1 = p.零件名称; - _part.PartDesc2 = ""; - _part.ProjectId = p.项目编号; - _part.Unit = p.单位; - _part.PartGroup = p.项目编号; - _part.State = p.状态; - _part.Site = site; - db.TA_PART.AddOrUpdate(_part); - }); - if (_ret.MessageList.Count == 0) - { - int state = db.SaveChanges(); - if (state != -1) - { - _ret.State = ReturnStatus.Succeed; - _ret.Result = true; - } - else - { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; - } - } - else - { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; - } + q = q.Where(p => p.VendId.Contains(p_entity.VendId)); + } + if (!string.IsNullOrEmpty(p_entity.VendName)) + { + q = q.Where(p => p.VendName.Contains(p_entity.VendName)); + } + + + if (p_entity.ModType != null) + { + q = q.Where(p => p.ModType == p_entity.ModType); + } + if (!string.IsNullOrEmpty(p_entity.ProjectId)) + { + q = q.Where(p => p.ProjectId.Contains(p_entity.ProjectId)); + } + if (!string.IsNullOrEmpty(p_entity.PartCode)) + { + q = q.Where(p => p.PartCode.Contains(p_entity.PartCode)); + } + if (p_entity.State != null) + { + q = q.Where(p => p.State == p_entity.State); + } + //q = q.Where(p => p.IsDeleted == p_entity.IsDeleted); + + //IQueryable _aq = db.TB_ASK_DETAIL; + //_aq = _aq.Where(p => p.PoBillNum == p_entity.PoBillNum); + //var _a=_aq.GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode }).Select(p => new { AskSum = p.Max(itm=>itm .AskQty),PoLine=p.Key }); + if (p_entity.UserInAddress != null && p_entity.UserInAddress.Count > 0) + { + q = q.Where(p => p_entity.UserInAddress.Contains(p.Site)); + } + if (!string.IsNullOrEmpty(p_entity.SubSite)) + { + q = q.Where(p => p.SubSite == p_entity.SubSite); + } + if (!string.IsNullOrEmpty(p_entity.Extend1)) + { + q = q.Where(p => p.Extend1 == p_entity.Extend1); + } + if (!string.IsNullOrEmpty(p_entity.Extend2)) + { + q = q.Where(p => p.Extend1 == p_entity.Extend2); + } + if (!string.IsNullOrEmpty(p_entity.Extend3)) + { + q = q.Where(p => p.Extend1 == p_entity.Extend3); + } + if (!string.IsNullOrEmpty(p_entity.SubSite)) + { + q = q.Where(p => p.SubSite.Contains(p_entity.SubSite)); + } + if (!string.IsNullOrEmpty(p_entity.Extend1)) + { + q = q.Where(p => p.Extend1.Contains(p_entity.Extend1)); + } + if (!string.IsNullOrEmpty(p_entity.Extend2)) + { + q = q.Where(p => p.Extend2.Contains(p_entity.Extend2)); + } + if (!string.IsNullOrEmpty(p_entity.Extend3)) + { + q = q.Where(p => p.Extend3.Contains(p_entity.Extend3)); } + _ret.State = ReturnStatus.Succeed; + _ret.Result = q; + p_action(_ret); } } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 @@ -2451,18 +8621,16 @@ namespace CK.SCP.Controller }); } _ret.State = ReturnStatus.Failed; - _ret.Result = false; _ret.ErrorList.Add(dbEx); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PART_MOD", sb.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", sb.ToString()); throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); } catch (OptimisticConcurrencyException ex)//并发冲突异常 { _ret.State = ReturnStatus.Failed; - _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PART_MOD", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", ex.ToString()); throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); } catch (ScpException ex) @@ -2470,9 +8638,8 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; - _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PART_MOD", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", ex.ToString()); if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) { @@ -2489,149 +8656,72 @@ namespace CK.SCP.Controller catch (Exception e) { _ret.State = ReturnStatus.Failed; - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PART_MOD", e.Message); - _ret.Result = false; _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", e.Message); throw e; } - return _ret; + } - /// - /// 订单导入 - /// - /// - /// - /// - /// - /// - /// - public static ResultObject EXCEL_PO_MOD(List p_order_list, string site, string p_creator, DateTime p_time, PoState p_modtype) + + + + public static void Get_V_TB_PO_DETAIL_List(V_TB_PO_DETAIL p_entity, Action>> p_action) { - ResultObject _ret = new ResultObject(); + ResultObject> _ret = new ResultObject>(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - int number = 1; - List lineError = new List(); - List ErrorList = new List(); - var _lst = p_order_list; - _lst.ForEach(p => + IQueryable q = db.V_TB_PO_DETAIL; + + if (!string.IsNullOrEmpty(p_entity.PoBillNum)) { - var _count = _lst.Count(itm => itm.订单编号 == p.订单编号 && itm.行号 == p.行号); - if (_count > 1) - { - lineError.Add(string.Format("导入订单编号{0}行号{1}有重复", p.订单编号, p.行号)); - ErrorList = lineError; - } - }); - _lst.ForEach(p => + q = q.Where(p => p.PoBillNum == p_entity.PoBillNum); + } + if (!string.IsNullOrEmpty(p_entity.ErpBillNum)) { - var _count = _lst.Count(itm => itm.订单编号 == p.订单编号 && itm.零件号 == p.零件号 && itm.行号 == p.行号); - if (_count > 1) - { - lineError.Add(string.Format("导入订单编号{0}行号{1}零件编码{2}有重复", p.订单编号,p.行号, p.零件号)); - ErrorList = lineError; - } - }); - - _lst.ForEach - (p => + q = q.Where(p => p.ErpBillNum.Contains(p_entity.ErpBillNum)); + } + if (p_entity.BeginTime != null) { - var _ls = CheckExcelMode_Po(db, p); - if (_ls.Count > 0) - { - lineError.Add(number.ToString()); - ErrorList.Add(string.Join("
", _ls.ToArray())); - } - number++; - }); - if (lineError.Count > 0) + q = q.Where(p => p.BeginTime >= p_entity.BeginTime); + } + if (p_entity.EndTime != null) + { + q = q.Where(p => p.BeginTime <= p_entity.EndTime); + } + if (!string.IsNullOrEmpty(p_entity.VendName)) + { + q = q.Where(p => p.VendName == p_entity.VendName); + } + if (p_entity.ModType != null) + { + q = q.Where(p => p.ModType == p_entity.ModType); + } + if (!string.IsNullOrEmpty(p_entity.ProjectId)) + { + q = q.Where(p => p.ProjectId == p_entity.ProjectId); + } + if (!string.IsNullOrEmpty(p_entity.PartCode)) { - _ret.State = ReturnStatus.Failed; - _ret.MessageList.AddRange(ErrorList); - _ret.Result = false; + q = q.Where(p => p.PartCode == p_entity.PartCode); } - else + if (p_entity.State != null) { - var OrderList = _lst.GroupBy(p => p.订单编号).ToList(); - OrderList.ForEach((p) => - { - var list = p.ToList(); - if (list.Count > 0) - { - var _entity = list.FirstOrDefault(); - TB_PO _po = new TB_PO(); - _po.PoBillNum = _entity.订单编号.ToUpper(); - _po.ErpBillNum = _entity.订单编号.ToUpper(); - _po.VendId = _entity.供应商编号.ToUpper(); - _po.ModType = (int)BillModType.Contract; - _po.Contacter = _entity.联系人; - _po.Site = site; - _po.Remark = _entity.备注; - _po.State = (int)PoState.Open; - _po.GUID = Guid.NewGuid(); - _po.IsDeleted = false; - _po.CreateTime = DateTime.Parse(_entity.订单创建时间); - _po.CreateUser = p_creator; - _po.BeginTime = p_time; - _po.EndTime = DateTime.Parse(_entity.要求到货日期); - _po.Site = site; - db.TB_PO.Add(_po); - // int _number = 1; - list.ForEach((itm) => - { - TB_PO_DETAIL _PO_Detail = new TB_PO_DETAIL(); - _PO_Detail.PoLine = Int32.Parse(itm.行号); - _PO_Detail.Currency = "CNY"; - _PO_Detail.PoBillNum = itm.订单编号; - _PO_Detail.PoUnit = itm.单位; - _PO_Detail.CreateTime = DateTime.Parse(itm.订单创建时间); - _PO_Detail.CreateUser = p_creator; - _PO_Detail.PartCode = itm.零件号.ToUpper(); - _PO_Detail.BeginTime = p_time; - _PO_Detail.EndTime = DateTime.Parse(itm.要求到货日期); - _PO_Detail.PlanQty = decimal.Parse(itm.数量); - _PO_Detail.IsDeleted = false; - _PO_Detail.LocUnit = itm.单位; - _PO_Detail.PoUnit = itm.单位; - _PO_Detail.UnConv = 1; - _PO_Detail.State = (int)PoState.Open; - _PO_Detail.Price = string.IsNullOrEmpty(itm.单价) ? 0 : decimal.Parse(itm.单价); - _PO_Detail.GUID = Guid.NewGuid(); - _PO_Detail.Site = site; - db.TB_PO_DETAIL.Add(_PO_Detail); - // _number++; - }); - } - else - { - _ret.MessageList.Add("ERP订单编号已存在,请重新导入!"); - return; - } + q = q.Where(p => p.State == p_entity.State); + } + //q = q.Where(p => p.IsDeleted == p_entity.IsDeleted); - if (_ret.MessageList.Count == 0) - { - int state = db.SaveChanges(); - if (state != -1) - { - _ret.State = ReturnStatus.Succeed; - _ret.Result = true; - } - else - { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; - } - } - else - { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; - } - } - ); + //IQueryable _aq = db.TB_ASK_DETAIL; + //_aq = _aq.Where(p => p.PoBillNum == p_entity.PoBillNum); + //var _a=_aq.GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode }).Select(p => new { AskSum = p.Max(itm=>itm .AskQty),PoLine=p.Key }); + if (p_entity.UserInAddress != null && p_entity.UserInAddress.Count > 0) + { + q = q.Where(p => p_entity.UserInAddress.Contains(p.Site)); } + _ret.State = ReturnStatus.Succeed; + _ret.Result = q; + p_action(_ret); } } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 @@ -2647,18 +8737,16 @@ namespace CK.SCP.Controller }); } _ret.State = ReturnStatus.Failed; - _ret.Result = false; _ret.ErrorList.Add(dbEx); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", sb.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", sb.ToString()); throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); } catch (OptimisticConcurrencyException ex)//并发冲突异常 { _ret.State = ReturnStatus.Failed; - _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", ex.ToString()); throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); } catch (ScpException ex) @@ -2666,9 +8754,8 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; - _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", ex.ToString()); if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) { @@ -2685,178 +8772,58 @@ namespace CK.SCP.Controller catch (Exception e) { _ret.State = ReturnStatus.Failed; - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_MOD", e.Message); - _ret.Result = false; _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", e.Message); throw e; } - return _ret; - - } - public static List EXCEL_ASK_Check(List p_order_list) - { - List ErrorList = new List(); - using (ScpEntities db = EntitiesFactory.CreateScpInstance()) - { - p_order_list.ForEach - (p => - { - //var _ls = CheckExcel(db, p); - var _checkls = CheckExcelPackQty(db, p); - if (_checkls.Count > 0) - { - ErrorList.Add(string.Join("
", _checkls.ToArray())); - } - }); - } - return ErrorList; } - public static ResultObject EXCEL_PO_TO_ASK(List p_order_list, string p_creator, string p_buyer, DateTime p_time, BillModType p_modtype, string p_site, bool IsAutoPublish = false) + public static void Get_V_TB_MAXPO_DETAIL_List(V_TB_MAXPO_DETAIL p_entity, Action>> p_action) { - ResultObject _ret = new ResultObject(); + ResultObject> _ret = new ResultObject>(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - int number = 1; - List lineError = new List(); - List ErrorList = new List(); - p_order_list.ForEach - (p => - { - var _ls = CheckExcel(db, p); - if (_ls.Count > 0) - { - lineError.Add(number.ToString()); - ErrorList.Add(string.Join("
", _ls.ToArray())); - } - number++; + IQueryable q = db.V_TB_MAXPO_DETAIL; - }); - if (lineError.Count > 0) + if (!string.IsNullOrEmpty(p_entity.PoBillNum)) { - _ret.State = ReturnStatus.Failed; - _ret.MessageList.AddRange(ErrorList); - _ret.Result = false; + q = q.Where(p => p.PoBillNum == p_entity.PoBillNum); } - else - { - p_order_list = p_order_list.Where(p => int.Parse(p.数量) != 0).ToList(); - - - //var VenderList = p_order_list.Select(p => p.供应商编号).Distinct(); - //var PartCodeList = p_order_list.Select(p => p.零件号).Distinct(); - var OrderList = p_order_list.GroupBy(p =>new { p.分组编号, p.供应商编号 }).ToList(); - OrderList.ForEach((p) => - { - var list_distinct = p.GroupBy(t => new { t.零件号, t.行号 }).ToList(); - var list = p.ToList(); - if (list_distinct.Count < list.Count) - { - _ret.MessageList.Add("相同组号,存在同一编号、行号的数据"); - return; - } - if (list.Count > 0) - { - - var _entity = list.FirstOrDefault(); - TB_ASK _ask = new TB_ASK(); - _ask.AskBillNum = SCP_BILLCODE_CONTROLLER.MakeASKCode(); - _ask.State = (int)AskState.New; - _ask.PoBillNum = _entity.QAD订单号.ToUpper(); - _ask.ModType = (int)BillModType.Contract; - _ask.Site = p_site; - if (IsAutoPublish) - { - _ask.State = (int)AskState.Release; - } - else - { - _ask.State = (int)AskState.New; - } - _ask.BeginTime = DateTime.Now; - _ask.Buyer = _entity.交货联系人; - _ask.BuyerPhone = _entity.交货联系人电话; - _ask.ErpBillNum = _entity.QAD订单号.ToUpper(); - _ask.EndTime = DateTime.Parse(_entity.要求到货日期); - _ask.CreateTime = DateTime.Now; - _ask.CreateUser = p_creator; - _ask.VendId = _entity.供应商编号.ToUpper(); - _ask.GUID = Guid.NewGuid(); - _ask.IsDeleted = false; - db.TB_ASK.Add(_ask); - - #region 供应商新任务代办接口 - TB_PENING_ITEMS _item = new TB_PENING_ITEMS(); - _item.ROLE_NAME = "供应商"; - _item.ITEM_NO = _ask.AskBillNum; - _item.ITEM_CONTENT = "要货看盘有信息"; - _item.ITEM_TYPE = (int)PENDING_MESSAGE_TYPE.NEW_ASK; - _item.VEND_ID = _ask.VendId; - _item.ITEM_STATE = (int)PENDING_STATE.WAITING; - _item.SENDER = _entity.交货联系人; - _item.SENDING_TIME = DateTime.Now; - db.TB_PENING_ITEMS.Add(_item); - #endregion - - // int _number = 1; - list.ForEach((itm) => - { - TB_ASK_DETAIL _t_ASK_Detail = new TB_ASK_DETAIL(); - //_t_ASK_Detail.PoLine = _number; - _t_ASK_Detail.PoLine = Int32.Parse(itm.行号); - _t_ASK_Detail.Currency = itm.币种; - _t_ASK_Detail.AskBillNum = _ask.AskBillNum; - _t_ASK_Detail.PoBillNum = _ask.PoBillNum; - _t_ASK_Detail.PoUnit = itm.单位; - _t_ASK_Detail.CreateTime = DateTime.Now; - _t_ASK_Detail.CreateUser = _ask.CreateUser; - _t_ASK_Detail.PartCode = (itm.零件号.ToUpper()).TrimEnd(); - _t_ASK_Detail.BeginTime = _ask.BeginTime; - _t_ASK_Detail.EndTime = DateTime.Parse(itm.要求到货日期); - _t_ASK_Detail.TempQty = decimal.Parse(itm.数量); - _t_ASK_Detail.AskQty = decimal.Parse(itm.数量); - _t_ASK_Detail.IsDeleted = false; - _t_ASK_Detail.LocUnit = itm.单位; - _t_ASK_Detail.UnConv = 1; - _t_ASK_Detail.State = _ask.State; - _t_ASK_Detail.Price = string.IsNullOrEmpty(itm.价格) ? 0 : decimal.Parse(itm.价格); - _t_ASK_Detail.GUID = Guid.NewGuid(); - _t_ASK_Detail.Remark = itm.备注; - db.TB_ASK_DETAIL.Add(_t_ASK_Detail); - // _number++; - }); - } - else - { - _ret.MessageList.Add("ERP订单编号已存在,请重新导入!"); - return; - } - - if (_ret.MessageList.Count == 0) - { - int state = db.SaveChanges(); - if (state != -1) - { - _ret.State = ReturnStatus.Succeed; - _ret.Result = true; - } - else - { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; - } - } - else - { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; - } - } - ); + if (!string.IsNullOrEmpty(p_entity.ContractMonth)) + { + q = q.Where(p => p.ContractMonth == p_entity.ContractMonth); + } + if (!string.IsNullOrEmpty(p_entity.PartCode)) + { + q = q.Where(p => p.PartCode == p_entity.PartCode); + } + if (!string.IsNullOrEmpty(p_entity.VendId)) + { + q = q.Where(p => p.VendId == p_entity.VendId); + } + if (!string.IsNullOrEmpty(p_entity.CreateUser)) + { + q = q.Where(p => p.CreateUser == p_entity.CreateUser); } + if (!string.IsNullOrEmpty(p_entity.PartNumber)) + { + q = q.Where(p => p.PartNumber == p_entity.PartNumber); + } + if (!string.IsNullOrEmpty(p_entity.BeginTime.ToString())) + { + q = q.Where(p => p.CreateTime >= p_entity.BeginTime); + } + if (!string.IsNullOrEmpty(p_entity.EndTime.ToString())) + { + q = q.Where(p => p.CreateTime <= p_entity.EndTime); + } + q = q.Where(p=>p.IsDeleted==p_entity.IsDeleted); + _ret.State = ReturnStatus.Succeed; + _ret.Result = q; + p_action(_ret); } } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 @@ -2872,18 +8839,16 @@ namespace CK.SCP.Controller }); } _ret.State = ReturnStatus.Failed; - _ret.Result = false; _ret.ErrorList.Add(dbEx); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", sb.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", sb.ToString()); throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); } catch (OptimisticConcurrencyException ex)//并发冲突异常 { _ret.State = ReturnStatus.Failed; - _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", ex.ToString()); throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); } catch (ScpException ex) @@ -2891,9 +8856,8 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; - _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", ex.ToString()); if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) { @@ -2910,106 +8874,40 @@ namespace CK.SCP.Controller catch (Exception e) { _ret.State = ReturnStatus.Failed; - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "EXCEL_PO_TO_ASK", e.Message); - _ret.Result = false; _ret.ErrorList.Add(e); - if (e.InnerException != null) - { - _ret.MessageList.Add(e.InnerException.Message); - } - else - { - _ret.MessageList.Add(e.Message); - } + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", e.Message); + throw e; } - return _ret; } - - - public static ResultObject Save_PO_TO_ASK(V_TB_PO p_order, List p_order_list - , string p_buyer, string p_buyerPhone, string p_creator) + public static void Get_V_TB_MAXPO_INCOMPLETE_DETAIL(V_TB_MAXPO_CONSUME p_entity, Action>> p_action) { - ResultObject _ret = new ResultObject(); + ResultObject> _ret = new ResultObject>(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - TB_ASK _t = new TB_ASK(); - _t.AskBillNum = SCP_BILLCODE_CONTROLLER.MakeASKCode(); - _t.PoBillNum = p_order.PoBillNum; - _t.VendId = p_order.VendId; - _t.IsDeleted = false;//操作员 - _t.CreateTime = DateTime.Now; - _t.CreateUser = p_creator; - _t.Site = p_order.Site; - _t.ReceivedPort = p_order.ReceivedPort; - _t.Remark = p_order.Remark; - _t.State = (int)AskState.New; - _t.SubSite = p_order.SubSite; - _t.Extend1 = p_order.Extend1; - _t.Extend2 = p_order.Extend2; - _t.Extend3 = p_order.Extend3; + IQueryable q = db.V_TB_MAXPO_CONSUME; - _t.GUID = Guid.NewGuid(); - _t.ModType = (int)p_order.ModType; - _t.ErpBillNum = p_order.ErpBillNum; - _t.BeginTime = (DateTime)p_order.BeginTime; - var _date = p_order.BeginTime; - if(p_order_list.Count>0) - { - _date = p_order_list[0].EndTime; - } - _t.EndTime = _date; - _t.Buyer = p_buyer; - _t.BuyerPhone = p_buyerPhone; - db.TB_ASK.AddOrUpdate(p => p.AskBillNum, _t); - List _list = new List(); - foreach (var itm in p_order_list) - { - TB_ASK_DETAIL _tDetail = new TB_ASK_DETAIL(); - _tDetail.Remark = _t.Remark; - _tDetail.PoBillNum = _t.PoBillNum; - _tDetail.AskBillNum = _t.AskBillNum; - _tDetail.PoLine = itm.PoLine; - _tDetail.PoUnit = itm.PoUnit; - _tDetail.CreateTime = DateTime.Now; - _tDetail.CreateUser = p_creator; - _tDetail.PartCode = itm.PartCode; - _tDetail.ReceivedPort = itm.ReceivedPort; - _tDetail.BeginTime = itm.BeginTime; - _tDetail.EndTime = itm.EndTime; - _tDetail.TempQty = itm.TempQty == null ? 0 : (decimal)itm.TempQty; - _tDetail.AskQty = (decimal)itm.PublishQty; - _tDetail.IsDeleted = false; - _tDetail.LocUnit = itm.LocUnit; - _tDetail.UnConv = itm.UnConv; - _tDetail.State = (int)p_order.State; - _tDetail.Price = itm.Price; - _tDetail.GUID = Guid.NewGuid(); - _tDetail.Currency = itm.Currency; - _tDetail.Site = itm.Site; - _tDetail.SubSite = itm.SubSite; - _tDetail.Extend1 = itm.Extend1; - _tDetail.Extend2 = itm.Extend2; - _tDetail.Extend3 = itm.Extend3; - db.TB_ASK_DETAIL.Add(_tDetail); - var _order_detail = db.TB_PO_DETAIL.Where(p => p.UID == itm.UID).FirstOrDefault(); - _order_detail.TempQty = itm.TempQty; - db.TB_PO_DETAIL.AddOrUpdate(p => p.UID, _order_detail); - } - int state = db.SaveChanges(); - if (state != -1) + //if (!string.IsNullOrEmpty(p_entity.PoBillNum)) + //{ + // q = q.Where(p => p.PoBillNum == p_entity.PoBillNum); + //} + //if (!string.IsNullOrEmpty(p_entity.PartCode)) + //{ + // q = q.Where(p => p.PartCode == p_entity.PartCode); + //} + if (p_entity.PoList != null && p_entity.PoList.Count > 0) { - _ret.State = ReturnStatus.Succeed; - _ret.Result = true; + q = q.Where(p => p_entity.PoList.Contains(p.PoBillNum)); } - else + if (p_entity.PartList != null && p_entity.PartList.Count > 0) { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; + q = q.Where(p => p_entity.PartList.Contains(p.PartCode)); } - + _ret.State = ReturnStatus.Succeed; + _ret.Result = q; + p_action(_ret); } } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 @@ -3025,18 +8923,16 @@ namespace CK.SCP.Controller }); } _ret.State = ReturnStatus.Failed; - _ret.Result = false; _ret.ErrorList.Add(dbEx); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", sb.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", sb.ToString()); throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); } catch (OptimisticConcurrencyException ex)//并发冲突异常 { _ret.State = ReturnStatus.Failed; - _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", ex.ToString()); throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); } catch (ScpException ex) @@ -3044,9 +8940,8 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; - _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", ex.ToString()); if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) { @@ -3063,107 +8958,46 @@ namespace CK.SCP.Controller catch (Exception e) { _ret.State = ReturnStatus.Failed; - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Save_PO_TO_ASK", e.Message); - _ret.Result = false; _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_PO_CONTROLLER), "Get_V_TB_PO_DETAIL_List", e.Message); throw e; } - return _ret; - } - public static void Get_V_TB_PO_DETAIL_OUTPUT_List(V_TB_PO_DETAIL p_entity, Action>> p_action) + } + public static void Get_V_TB_MAXPO_List(V_TB_MAXPO p_entity, Action>> p_action) { - ResultObject> _ret = new ResultObject>(); + ResultObject> _ret = new ResultObject>(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - IQueryable q = db.V_TB_PO_DETAIL; + IQueryable q = db.V_TB_MAXPO; if (!string.IsNullOrEmpty(p_entity.PoBillNum)) { q = q.Where(p => p.PoBillNum == p_entity.PoBillNum); } - if (!string.IsNullOrEmpty(p_entity.ErpBillNum)) - { - q = q.Where(p => p.ErpBillNum.Contains(p_entity.ErpBillNum)); - } - if (p_entity.BeginTime != null) - { - q = q.Where(p => p.BeginTime >= p_entity.BeginTime); - } - if (p_entity.EndTime != null) - { - q = q.Where(p => p.BeginTime <= p_entity.EndTime); - } - if (!string.IsNullOrEmpty(p_entity.VendId)) { - q = q.Where(p => p.VendId.Contains(p_entity.VendId)); - } - if (!string.IsNullOrEmpty(p_entity.VendName)) - { - q = q.Where(p => p.VendName.Contains(p_entity.VendName)); - } - - - if (p_entity.ModType != null) - { - q = q.Where(p => p.ModType == p_entity.ModType); - } - if (!string.IsNullOrEmpty(p_entity.ProjectId)) - { - q = q.Where(p => p.ProjectId.Contains(p_entity.ProjectId)); - } - if (!string.IsNullOrEmpty(p_entity.PartCode)) - { - q = q.Where(p => p.PartCode.Contains(p_entity.PartCode)); - } - if (p_entity.State != null) - { - q = q.Where(p => p.State == p_entity.State); - } - //q = q.Where(p => p.IsDeleted == p_entity.IsDeleted); - - //IQueryable _aq = db.TB_ASK_DETAIL; - //_aq = _aq.Where(p => p.PoBillNum == p_entity.PoBillNum); - //var _a=_aq.GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode }).Select(p => new { AskSum = p.Max(itm=>itm .AskQty),PoLine=p.Key }); - if (p_entity.UserInAddress != null && p_entity.UserInAddress.Count > 0) - { - q = q.Where(p => p_entity.UserInAddress.Contains(p.Site)); - } - if (!string.IsNullOrEmpty(p_entity.SubSite)) - { - q = q.Where(p => p.SubSite == p_entity.SubSite); - } - if (!string.IsNullOrEmpty(p_entity.Extend1)) - { - q = q.Where(p => p.Extend1 == p_entity.Extend1); - } - if (!string.IsNullOrEmpty(p_entity.Extend2)) - { - q = q.Where(p => p.Extend1 == p_entity.Extend2); - } - if (!string.IsNullOrEmpty(p_entity.Extend3)) - { - q = q.Where(p => p.Extend1 == p_entity.Extend3); + q = q.Where(p => p.VendId == p_entity.VendId); } - if (!string.IsNullOrEmpty(p_entity.SubSite)) + if (!string.IsNullOrEmpty(p_entity.CreateUser)) { - q = q.Where(p => p.SubSite.Contains(p_entity.SubSite)); + q = q.Where(p => p.CreateUser == p_entity.CreateUser); } - if (!string.IsNullOrEmpty(p_entity.Extend1)) + if (!string.IsNullOrEmpty(p_entity.ContractMonth)) { - q = q.Where(p => p.Extend1.Contains(p_entity.Extend1)); + q = q.Where(p => p.ContractMonth == p_entity.ContractMonth); } - if (!string.IsNullOrEmpty(p_entity.Extend2)) + if (!string.IsNullOrEmpty(p_entity.BeginTime.ToString())) { - q = q.Where(p => p.Extend2.Contains(p_entity.Extend2)); + q = q.Where(p => p.CreateTime >= p_entity.BeginTime); } - if (!string.IsNullOrEmpty(p_entity.Extend3)) + if (!string.IsNullOrEmpty(p_entity.EndTime.ToString())) { - q = q.Where(p => p.Extend3.Contains(p_entity.Extend3)); + q = q.Where(p => p.CreateTime <= p_entity.EndTime); } + q = q.Where(p => p.IsDeleted == p_entity.IsDeleted); _ret.State = ReturnStatus.Succeed; _ret.Result = q; p_action(_ret); @@ -3226,60 +9060,20 @@ namespace CK.SCP.Controller - public static void Get_V_TB_PO_DETAIL_List(V_TB_PO_DETAIL p_entity, Action>> p_action) + public static void Get_V_TB_PO_SUBDETAIL(V_TB_PO_SUBDETAIL p_entity, Action>> p_action) { - ResultObject> _ret = new ResultObject>(); + ResultObject> _ret = new ResultObject>(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - IQueryable q = db.V_TB_PO_DETAIL; + IQueryable q = db.V_TB_PO_SUBDETAIL; if (!string.IsNullOrEmpty(p_entity.PoBillNum)) { q = q.Where(p => p.PoBillNum == p_entity.PoBillNum); } - if (!string.IsNullOrEmpty(p_entity.ErpBillNum)) - { - q = q.Where(p => p.ErpBillNum.Contains(p_entity.ErpBillNum)); - } - if (p_entity.BeginTime != null) - { - q = q.Where(p => p.BeginTime >= p_entity.BeginTime); - } - if (p_entity.EndTime != null) - { - q = q.Where(p => p.BeginTime <= p_entity.EndTime); - } - if (!string.IsNullOrEmpty(p_entity.VendName)) - { - q = q.Where(p => p.VendName == p_entity.VendName); - } - if (p_entity.ModType != null) - { - q = q.Where(p => p.ModType == p_entity.ModType); - } - if (!string.IsNullOrEmpty(p_entity.ProjectId)) - { - q = q.Where(p => p.ProjectId == p_entity.ProjectId); - } - if (!string.IsNullOrEmpty(p_entity.PartCode)) - { - q = q.Where(p => p.PartCode == p_entity.PartCode); - } - if (p_entity.State != null) - { - q = q.Where(p => p.State == p_entity.State); - } - //q = q.Where(p => p.IsDeleted == p_entity.IsDeleted); - - //IQueryable _aq = db.TB_ASK_DETAIL; - //_aq = _aq.Where(p => p.PoBillNum == p_entity.PoBillNum); - //var _a=_aq.GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode }).Select(p => new { AskSum = p.Max(itm=>itm .AskQty),PoLine=p.Key }); - if (p_entity.UserInAddress != null && p_entity.UserInAddress.Count > 0) - { - q = q.Where(p => p_entity.UserInAddress.Contains(p.Site)); - } + _ret.State = ReturnStatus.Succeed; _ret.Result = q; p_action(_ret); @@ -3341,9 +9135,6 @@ namespace CK.SCP.Controller } - - - #region 沈阳金杯 public static ResultObject Save_PO_TO_ASK_SYJB(V_TB_PO p_order, List p_order_list , string p_buyer, string p_buyerPhone) diff --git a/Controller/SCP_REPORT_CONTROLLER.cs b/Controller/SCP_REPORT_CONTROLLER.cs index 5b01e33..cd3a195 100644 --- a/Controller/SCP_REPORT_CONTROLLER.cs +++ b/Controller/SCP_REPORT_CONTROLLER.cs @@ -912,7 +912,71 @@ namespace CK.SCP.Controller } } + public static void Get_V_TB_ASK_ASN_View_List1(V_TB_REEEE p_entity, Action>> p_action) + { + ResultObject> _ret = new ResultObject>(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + IQueryable q = db.V_TB_REEEE; + if (!string.IsNullOrEmpty(p_entity.PoBillNum)) + { + q = q.Where(p => p.PoBillNum == p_entity.PoBillNum); + } + + _ret.State = ReturnStatus.Succeed; + _ret.Result = q; + p_action(_ret); + } + + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_ASN_View_List", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_ASN_View_List", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_ASN_View_List", ex.ToString()); + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_ASN_View_List", e.Message); + throw e; + } + } public static void Get_V_TB_ASK_RECEIVE_List(TB_ASK_RECEIVE p_entity, Action>> p_action) { diff --git a/Controller/SCP_TA_LANGUAGE_CONTROLLER.cs b/Controller/SCP_TA_LANGUAGE_CONTROLLER.cs index 0b68e5b..56b4e65 100644 --- a/Controller/SCP_TA_LANGUAGE_CONTROLLER.cs +++ b/Controller/SCP_TA_LANGUAGE_CONTROLLER.cs @@ -122,9 +122,199 @@ namespace CK.SCP.Controller } return _ret; } - + public static ResultObject> Get_TA_LANGUAGE_List1(TA_Appliance p_entity) + { + ResultObject> _ret = new ResultObject>(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + IQueryable q = db.TA_Appliance; + if (!string.IsNullOrEmpty(p_entity.PartNumber)) + { + q = q.Where(p => p.PartNumber == p_entity.PartNumber); + } + if (!string.IsNullOrEmpty(p_entity.PartDesc2)) + { + q = q.Where(p => p.PartDesc2 == p_entity.PartDesc2); + } + if (!string.IsNullOrEmpty(p_entity.Texture)) + { + q = q.Where(p => p.Texture == p_entity.Texture); + } + if (!string.IsNullOrEmpty(p_entity.ReceivingPort)) + { + q = q.Where(p => p.ReceivingPort == p_entity.ReceivingPort); + } + if (!string.IsNullOrEmpty(p_entity.PartDesc1)) + { + q = q.Where(p => p.PartDesc1 == p_entity.PartDesc1); + } + if (!string.IsNullOrEmpty(p_entity.Model)) + { + q = q.Where(p => p.Model == p_entity.Model); + } + if (p_entity.PackNumber != 0) + { + q = q.Where(p => p.PackNumber == p_entity.PackNumber); + } + if (!string.IsNullOrEmpty(p_entity.ReciteNumber)) + { + q = q.Where(p => p.ReciteNumber == p_entity.ReciteNumber); + } + if (!string.IsNullOrEmpty(p_entity.SufanLand)) + { + q = q.Where(p => p.SufanLand == p_entity.SufanLand); + } + if (!string.IsNullOrEmpty(p_entity.BoxType)) + { + q = q.Where(p => p.BoxType == p_entity.BoxType); + } + if (!string.IsNullOrEmpty(p_entity.PostEngineering)) + { + q = q.Where(p => p.PostEngineering == p_entity.PostEngineering); + } + if (!string.IsNullOrEmpty(p_entity.VendID)) + { + q = q.Where(p => p.VendID == p_entity.VendID); + } + _ret.Result = q.ToList(); + _ret.State = ReturnStatus.Succeed; + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); - public static ResultObject Save_TA_LANGUAGE(List p_entitys) + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Get_TA_LANGUAGE_List", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Get_TA_LANGUAGE_List", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Get_TA_LANGUAGE_List", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Get_TA_LANGUAGE_List", e.Message); + throw e; + } + return _ret; + } + public static ResultObject> Get_TA_PurchaGroup_List(TA_PurchasGroup p_entity) + { + ResultObject> _ret = new ResultObject>(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + IQueryable q = db.TA_PurchasGroup; + if (!string.IsNullOrEmpty(p_entity.PurchasingGroup)) + { + q = q.Where(p => p.PurchasingGroup == p_entity.PurchasingGroup); + } + if (!string.IsNullOrEmpty(p_entity.ChineseName)) + { + q = q.Where(p => p.ChineseName == p_entity.ChineseName); + } + if (!string.IsNullOrEmpty(p_entity.Describe)) + { + q = q.Where(p => p.Describe == p_entity.Describe); + } + _ret.Result = q.ToList(); + _ret.State = ReturnStatus.Succeed; + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Get_TA_LANGUAGE_List", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Get_TA_LANGUAGE_List", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Get_TA_LANGUAGE_List", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Get_TA_LANGUAGE_List", e.Message); + throw e; + } + return _ret; + } + public static ResultObject Save_TA_PurchaGroup(List p_entitys) { ResultObject _ret = new ResultObject(); try @@ -133,7 +323,7 @@ namespace CK.SCP.Controller { foreach (var itm in p_entitys) { - db.TA_LANGUAGE.AddOrUpdate(p => p.GUID, itm); + db.TA_PurchasGroup.AddOrUpdate(p => p.PurchasingGroup, itm); } if (db.SaveChanges() != -1) { @@ -206,20 +396,48 @@ namespace CK.SCP.Controller return _ret; } - - - public static ResultObject Del_TA_LANGUAGE(string _ls) + public static ResultObject Save_TA_LANGUAGE1(TA_Appliance p_entitys) { ResultObject _ret = new ResultObject(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - + var appliance = db.TA_Appliance.FirstOrDefault(p => p.PartNumber == p_entitys.PartNumber && p.VendID==p_entitys.VendID); + if (appliance == null) + { + TA_Appliance applianc = new TA_Appliance(); + applianc.PartNumber = p_entitys.PartNumber; + applianc.VendID = p_entitys.VendID; + applianc.Texture = p_entitys.Texture; + applianc.ReceivingPort = p_entitys.ReceivingPort; + applianc.PartDesc1 = p_entitys.PartDesc1; + applianc.Model = p_entitys.Model; + applianc.PackNumber = p_entitys.PackNumber; + applianc.ReciteNumber = p_entitys.ReciteNumber; + applianc.SufanLand = p_entitys.SufanLand; + applianc.BoxType = p_entitys.BoxType; + applianc.PostEngineering = p_entitys.PostEngineering; + + db.TA_Appliance.AddOrUpdate(applianc); + } + else + { + appliance.Texture = p_entitys.Texture; + appliance.ReceivingPort = p_entitys.ReceivingPort; + appliance.PartDesc1 = p_entitys.PartDesc1; + appliance.Model = p_entitys.Model; + appliance.PackNumber = p_entitys.PackNumber; + appliance.ReciteNumber = p_entitys.ReciteNumber; + appliance.SufanLand = p_entitys.SufanLand; + appliance.BoxType = p_entitys.BoxType; + appliance.PostEngineering = p_entitys.PostEngineering; + + db.TA_Appliance.AddOrUpdate(appliance); + } + - var _entity = db.TA_LANGUAGE.Where(p=>p.UID.ToString()==_ls).FirstOrDefault(); - db.TA_LANGUAGE.Remove(_entity); if (db.SaveChanges() != -1) { _ret.State = ReturnStatus.Succeed; @@ -247,32 +465,32 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(dbEx); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", sb.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Save_TA_LANGUAGE", sb.ToString()); throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); } catch (OptimisticConcurrencyException ex)//并发冲突异常 { - + _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Save_TA_LANGUAGE", ex.ToString()); throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); } catch (ScpException ex) { - + _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", ex.ToString()); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Save_TA_LANGUAGE", ex.ToString()); if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) { var inner = (UpdateException)ex.InnerException; - + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); } else @@ -283,17 +501,759 @@ namespace CK.SCP.Controller catch (Exception e) { _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Save_TA_LANGUAGE", e.Message); _ret.Result = false; _ret.ErrorList.Add(e); - LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", e.Message); throw e; + throw e; } return _ret; } + public static ResultObject Save_TA_LANGUAGE(List p_entitys) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + foreach (var itm in p_entitys) + { + db.TA_LANGUAGE.AddOrUpdate(p => p.GUID, itm); + } + if (db.SaveChanges() != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Save_TA_LANGUAGE", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Save_TA_LANGUAGE", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { - } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Save_TA_LANGUAGE", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; - -} + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Save_TA_LANGUAGE", e.Message); + _ret.Result = false; + _ret.ErrorList.Add(e); + throw e; + } + return _ret; + } + + + + public static ResultObject Del_TA_LANGUAGE(string _ls) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + + var _entity = db.TA_LANGUAGE.Where(p=>p.UID.ToString()==_ls).FirstOrDefault(); + + db.TA_LANGUAGE.Remove(_entity); + if (db.SaveChanges() != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", e.Message); throw e; + } + return _ret; + } + + public static ResultObject Del_TA_LANGUAGE1(string _ls,string _ls1) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + + var _entity = db.TA_Appliance.Where(p => p.PartNumber == _ls&&p.VendID== _ls1).FirstOrDefault(); + + db.TA_Appliance.Remove(_entity); + if (db.SaveChanges() != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE1", e.Message); throw e; + } + return _ret; + } + public static ResultObject Del_TA_Storage(string _ls) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + + var _entity = db.TA_StorageLocation.Where(p => p.StLocation == _ls ).FirstOrDefault(); + + db.TA_StorageLocation.Remove(_entity); + if (db.SaveChanges() != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE1", e.Message); throw e; + } + return _ret; + } + public static ResultObject Del_TA_BoxType(string _ls) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + + var _entity = db.TA_BOXTYPE.Where(p => p.BoxType == _ls).FirstOrDefault(); + + db.TA_BOXTYPE.Remove(_entity); + if (db.SaveChanges() != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_BoxType", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_BoxType", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_BoxType", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE1", e.Message); throw e; + } + return _ret; + } + public static ResultObject Del_TA_PinFan(string _ls) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + + var _entity = db.TA_PinFan.Where(p => p.PartCode == _ls).FirstOrDefault(); + + db.TA_PinFan.Remove(_entity); + if (db.SaveChanges() != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_PinFan", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_PinFan", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_PinFan", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_PinFan", e.Message); throw e; + } + return _ret; + } + public static ResultObject Del_TA_Model(string _Model) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + + var _entity = db.TA_CarModel.Where(p => p.Model == _Model).FirstOrDefault(); + + db.TA_CarModel.Remove(_entity); + if (db.SaveChanges() != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_Model", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_Model", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_Model", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_Model", e.Message); throw e; + } + return _ret; + } + public static ResultObject Add_TA_Model(string _Model) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + + var _entity = db.TA_CarModel.Where(p => p.Model == _Model).FirstOrDefault(); + if (_entity == null) + { + TA_CarModel Car = new TA_CarModel(); + Car.Model = _Model; + db.TA_CarModel.AddOrUpdate(Car); + } + + + if (db.SaveChanges() != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Add_TA_Model", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Add_TA_Model", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Add_TA_Model", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Add_TA_Model", e.Message); throw e; + } + return _ret; + } + public static ResultObject Del_TA_LANGUAGE2(string _ls) + { + ResultObject _ret = new ResultObject(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + + var _entity = db.TA_PurchasGroup.Where(p => p.PurchasingGroup==_ls).FirstOrDefault(); + + db.TA_PurchasGroup.Remove(_entity); + if (db.SaveChanges() != -1) + { + _ret.State = ReturnStatus.Succeed; + _ret.Result = true; + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + } + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_TA_LANGUAGE_CONTROLLER), "Del_TA_LANGUAGE1", e.Message); throw e; + } + return _ret; + } + + + } + + + +} + + + \ No newline at end of file diff --git a/Controller/SCP_TB_VENDER_CONTROLLER.cs b/Controller/SCP_TB_VENDER_CONTROLLER.cs index 68621a1..d06c084 100644 --- a/Controller/SCP_TB_VENDER_CONTROLLER.cs +++ b/Controller/SCP_TB_VENDER_CONTROLLER.cs @@ -28,7 +28,6 @@ namespace CK.SCP.Controller return db.TA_VENDER.ToList(); } } - public static List Getlist(List lsVenderID ) { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) @@ -36,7 +35,7 @@ namespace CK.SCP.Controller var query = db.TA_VENDER.Where(p => lsVenderID.Contains(p.VendId)); return query.ToList(); } - } + } public static List Getlist(string p_site) { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) @@ -45,6 +44,7 @@ namespace CK.SCP.Controller return db.TA_VENDER.Where(p => p.Site==p_site ).ToList(); } } + public static List GetVenderList(List p_list) { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) @@ -69,7 +69,13 @@ namespace CK.SCP.Controller return db.TA_VENDER.Where(p => p.VendId==p_VenderID && p.Site==p_Site).FirstOrDefault(); } } - + public static TB_ASN Save_ASN_Asn(string ls) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + return db.TB_ASN.Where(p => p.AsnBillNum == ls).FirstOrDefault(); + } + } public static List GetVendNameList(List p_list, string p_site) { List _ls = new List(); diff --git a/Controller/SCP_TS_BARCODE_CONTROLLER.cs b/Controller/SCP_TS_BARCODE_CONTROLLER.cs index 3875031..6234fda 100644 --- a/Controller/SCP_TS_BARCODE_CONTROLLER.cs +++ b/Controller/SCP_TS_BARCODE_CONTROLLER.cs @@ -107,6 +107,10 @@ namespace CK.SCP.Controller { q = q.Where(p => p.PartName.Contains(p_entity.PartName)); } + if (!string.IsNullOrEmpty(p_entity.Extend16)) + { + q = q.Where(p => p.Extend16==p_entity.Extend16); + } _ret.State = ReturnStatus.Succeed; _ret.Result = q; p_action(_ret); diff --git a/Controller/UniApiController.cs b/Controller/UniApiController.cs index b7e1171..1dec096 100644 --- a/Controller/UniApiController.cs +++ b/Controller/UniApiController.cs @@ -116,7 +116,7 @@ namespace CK.SCP.Controller WmsTableName tableName; switch (uniApiType) { - case UniApiType.PO: + case UniApiType.Pobillnum: tableName = WmsTableName.TS_UNI_API;//中间表的名字 break; case UniApiType.Receive: @@ -235,9 +235,9 @@ namespace CK.SCP.Controller case "xxwms_rc_det": sql = "select * from xxwms_rc_det a inner join xxwms_ctrl b on a.xxwms_rc_seq = b.xxwms_seq where xxwms_domain = '{1}' and (xxwms_rc_nbr in ({0}) order by xxwms_rc_nbr, b.xxwms_seq"; break; - case "xxscm_tx_mstr": - sql = "select * from xxscm_tx_mstr a inner join xxscm_ctrl b on a.xxscm_tx_seq = b.xxscm_seq where xxscm_domain = '{1}' and xxscm_tx_nbr in ({0}) order by xxscm_tx_nbr, b.xxscm_seq"; - break; + //case "xxscm_tx_mstr": + // sql = "select * from xxscm_tx_mstr a inner join xxscm_ctrl b on a.xxscm_tx_seq = b.xxscm_seq where xxscm_domain = '{1}' and xxscm_tx_nbr in ({0}) order by xxscm_tx_nbr, b.xxscm_seq"; + // break; case "xxscm_inv_det": sql = "select * from xxscm_inv_det a inner join xxscm_ctrl b on a.xxscm_inv_seq = b.xxscm_seq where xxscm_domain = '{1}' and xxscm_inv_nbr IN({0}) order by xxscm_inv_nbr,b.xxscm_seq"; break; @@ -290,13 +290,58 @@ namespace CK.SCP.Controller apiData.VendId = bill.VendId; apiData.BillType = (int)BillType.PuchaseOrder; apiData.SubBillType = 0; - apiData.ValidDate = (DateTime)detail.ProduceDate; + apiData.ValidDate = bill.EndTime; apiData.ErpBillNum = bill.PoBillNum; apiData.ErpLineNum = detail.PoLine; - - if (bill.Site == "BJCIAI") + apiData.ModType= detail.UpdateInfo; + apiData.Barcode = ""; + var ts = db.TS_UNI_API.Count(p => p.ErpLineNum == detail.PoLine && p.ErpBillNum == bill.PoBillNum); + string str = "000"; + string st = bill.PoBillNum.Substring(0,4); + if (ts == 0) + { + string str1= detail.PoLine.ToString(); + + apiData.Extend3 = str1; + } + else + { + if (ts == 1) + { + var ts1 = db.TB_PO_DETAIL.Where(p => p.PoLine == detail.PoLine && p.PoBillNum == bill.PoBillNum).Select(r => r.PoLine).Max(); + int ts2 = ts1 + 50; + string str2 = ts2.ToString(); + + apiData.Extend3 = str2; + } + else if (ts == 2) + { + var ts1 = db.TB_PO_DETAIL.Where(p => p.PoLine == detail.PoLine && p.PoBillNum == bill.PoBillNum).Select(r => r.PoLine).Max(); + int ts2 = ts1 + 60; + string str3 = ts2.ToString(); + + apiData.Extend3 = str3; + } + else if (ts == 3) + { + var ts1 = db.TB_PO_DETAIL.Where(p => p.PoLine == detail.PoLine && p.PoBillNum == bill.PoBillNum).Select(r => r.PoLine).Max(); + int ts2 = ts1 + 70; + string str4 = ts2.ToString(); + + apiData.Extend3 = str4; + } + else + { + var ts3 = db.TS_UNI_API.Where(p => p.ErpLineNum == detail.PoLine && p.ErpBillNum == bill.PoBillNum).Select(r => r.Extend3).Max(); + int ts4 = int.Parse(ts3) + 10; + string str5 = ts4.ToString(); + + apiData.Extend3 = str5; + } + } + if (bill.SubSite == "W21") { - apiData.VendBatch = detail.Batch; + apiData.VendBatch = detail.UpdateUser; } else { @@ -311,7 +356,7 @@ namespace CK.SCP.Controller apiData.Buyer = bill.Buyer; apiData.BuyerPhone = bill.BuyerPhone; apiData.Domain = bill.Site; - apiData.Site = bill.SubSite; + apiData.Site = bill.SubSite ==null ? bill.Site : bill.SubSite; apiData.Extend1 = Utils.JsonHelper.GetJson(bill); apiData.Extend2 = Utils.JsonHelper.GetJson(detail); diff --git a/Controller/Web References/BomList/JsonService.disco b/Controller/Web References/BomList/JsonService.disco new file mode 100644 index 0000000..c63eb0d --- /dev/null +++ b/Controller/Web References/BomList/JsonService.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomList/JsonService.wsdl b/Controller/Web References/BomList/JsonService.wsdl new file mode 100644 index 0000000..28912cc --- /dev/null +++ b/Controller/Web References/BomList/JsonService.wsdl @@ -0,0 +1,2062 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomList/Reference.cs b/Controller/Web References/BomList/Reference.cs new file mode 100644 index 0000000..597d2cf --- /dev/null +++ b/Controller/Web References/BomList/Reference.cs @@ -0,0 +1,1610 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +// +// 此源代码是由 Microsoft.VSDesigner 4.0.30319.42000 版自动生成。 +// +#pragma warning disable 1591 + +namespace CK.SCP.Controller.BomList { + using System; + using System.Web.Services; + using System.Diagnostics; + using System.Web.Services.Protocols; + using System.Xml.Serialization; + using System.ComponentModel; + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Web.Services.WebServiceBindingAttribute(Name="JsonServiceSoap", Namespace="http://tempuri.org/")] + public partial class JsonService : System.Web.Services.Protocols.SoapHttpClientProtocol { + + private System.Threading.SendOrPostCallback GetVerOperationCompleted; + + private System.Threading.SendOrPostCallback WriteLogOperationCompleted; + + private System.Threading.SendOrPostCallback LoginOperationCompleted; + + private System.Threading.SendOrPostCallback NewLoginOperationCompleted; + + private System.Threading.SendOrPostCallback LogoutOperationCompleted; + + private System.Threading.SendOrPostCallback ModifyPasswordOperationCompleted; + + private System.Threading.SendOrPostCallback GetServerTimeOperationCompleted; + + private System.Threading.SendOrPostCallback DecryptOperationCompleted; + + private System.Threading.SendOrPostCallback EncryptOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountOperationCompleted; + + private System.Threading.SendOrPostCallback GetDataOperationCompleted; + + private System.Threading.SendOrPostCallback AddDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetBomVersionOperationCompleted; + + private System.Threading.SendOrPostCallback GetBomsByVerOperationCompleted; + + private System.Threading.SendOrPostCallback GetBomOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateDataOperationCompleted; + + private System.Threading.SendOrPostCallback SaveSeqencingOperationCompleted; + + private System.Threading.SendOrPostCallback AddMutualDataOperationCompleted; + + private System.Threading.SendOrPostCallback ReceiveProductsOperationCompleted; + + private System.Threading.SendOrPostCallback ContainerReceiveOperationCompleted; + + private System.Threading.SendOrPostCallback ContainerOutOperationCompleted; + + private System.Threading.SendOrPostCallback CheckComesbackOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBillMAOperationCompleted; + + private System.Threading.SendOrPostCallback AddMesFGFinOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateBillStateOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public JsonService() { + this.Url = global::CK.SCP.Controller.Properties.Settings.Default.CK_SCP_Controller_BomList_JsonService; + if ((this.IsLocalFileSystemWebService(this.Url) == true)) { + this.UseDefaultCredentials = true; + this.useDefaultCredentialsSetExplicitly = false; + } + else { + this.useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url { + get { + return base.Url; + } + set { + if ((((this.IsLocalFileSystemWebService(base.Url) == true) + && (this.useDefaultCredentialsSetExplicitly == false)) + && (this.IsLocalFileSystemWebService(value) == false))) { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials { + get { + return base.UseDefaultCredentials; + } + set { + base.UseDefaultCredentials = value; + this.useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event GetVerCompletedEventHandler GetVerCompleted; + + /// + public event WriteLogCompletedEventHandler WriteLogCompleted; + + /// + public event LoginCompletedEventHandler LoginCompleted; + + /// + public event NewLoginCompletedEventHandler NewLoginCompleted; + + /// + public event LogoutCompletedEventHandler LogoutCompleted; + + /// + public event ModifyPasswordCompletedEventHandler ModifyPasswordCompleted; + + /// + public event GetServerTimeCompletedEventHandler GetServerTimeCompleted; + + /// + public event DecryptCompletedEventHandler DecryptCompleted; + + /// + public event EncryptCompletedEventHandler EncryptCompleted; + + /// + public event GetCountCompletedEventHandler GetCountCompleted; + + /// + public event GetDataCompletedEventHandler GetDataCompleted; + + /// + public event AddDataCompletedEventHandler AddDataCompleted; + + /// + public event GetBomVersionCompletedEventHandler GetBomVersionCompleted; + + /// + public event GetBomsByVerCompletedEventHandler GetBomsByVerCompleted; + + /// + public event GetBomCompletedEventHandler GetBomCompleted; + + /// + public event UpdateDataCompletedEventHandler UpdateDataCompleted; + + /// + public event SaveSeqencingCompletedEventHandler SaveSeqencingCompleted; + + /// + public event AddMutualDataCompletedEventHandler AddMutualDataCompleted; + + /// + public event ReceiveProductsCompletedEventHandler ReceiveProductsCompleted; + + /// + public event ContainerReceiveCompletedEventHandler ContainerReceiveCompleted; + + /// + public event ContainerOutCompletedEventHandler ContainerOutCompleted; + + /// + public event CheckComesbackCompletedEventHandler CheckComesbackCompleted; + + /// + public event CreateBillMACompletedEventHandler CreateBillMACompleted; + + /// + public event AddMesFGFinCompletedEventHandler AddMesFGFinCompleted; + + /// + public event UpdateBillStateCompletedEventHandler UpdateBillStateCompleted; + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetVer", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetVer() { + object[] results = this.Invoke("GetVer", new object[0]); + return ((string)(results[0])); + } + + /// + public void GetVerAsync() { + this.GetVerAsync(null); + } + + /// + public void GetVerAsync(object userState) { + if ((this.GetVerOperationCompleted == null)) { + this.GetVerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetVerOperationCompleted); + } + this.InvokeAsync("GetVer", new object[0], this.GetVerOperationCompleted, userState); + } + + private void OnGetVerOperationCompleted(object arg) { + if ((this.GetVerCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetVerCompleted(this, new GetVerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/WriteLog", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string WriteLog(string operCode, string function, string message) { + object[] results = this.Invoke("WriteLog", new object[] { + operCode, + function, + message}); + return ((string)(results[0])); + } + + /// + public void WriteLogAsync(string operCode, string function, string message) { + this.WriteLogAsync(operCode, function, message, null); + } + + /// + public void WriteLogAsync(string operCode, string function, string message, object userState) { + if ((this.WriteLogOperationCompleted == null)) { + this.WriteLogOperationCompleted = new System.Threading.SendOrPostCallback(this.OnWriteLogOperationCompleted); + } + this.InvokeAsync("WriteLog", new object[] { + operCode, + function, + message}, this.WriteLogOperationCompleted, userState); + } + + private void OnWriteLogOperationCompleted(object arg) { + if ((this.WriteLogCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.WriteLogCompleted(this, new WriteLogCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Login", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Login(string operCode, string password) { + object[] results = this.Invoke("Login", new object[] { + operCode, + password}); + return ((string)(results[0])); + } + + /// + public void LoginAsync(string operCode, string password) { + this.LoginAsync(operCode, password, null); + } + + /// + public void LoginAsync(string operCode, string password, object userState) { + if ((this.LoginOperationCompleted == null)) { + this.LoginOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLoginOperationCompleted); + } + this.InvokeAsync("Login", new object[] { + operCode, + password}, this.LoginOperationCompleted, userState); + } + + private void OnLoginOperationCompleted(object arg) { + if ((this.LoginCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LoginCompleted(this, new LoginCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/NewLogin", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string NewLogin(string operCode, string password) { + object[] results = this.Invoke("NewLogin", new object[] { + operCode, + password}); + return ((string)(results[0])); + } + + /// + public void NewLoginAsync(string operCode, string password) { + this.NewLoginAsync(operCode, password, null); + } + + /// + public void NewLoginAsync(string operCode, string password, object userState) { + if ((this.NewLoginOperationCompleted == null)) { + this.NewLoginOperationCompleted = new System.Threading.SendOrPostCallback(this.OnNewLoginOperationCompleted); + } + this.InvokeAsync("NewLogin", new object[] { + operCode, + password}, this.NewLoginOperationCompleted, userState); + } + + private void OnNewLoginOperationCompleted(object arg) { + if ((this.NewLoginCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.NewLoginCompleted(this, new NewLoginCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Logout", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Logout(string operCode) { + object[] results = this.Invoke("Logout", new object[] { + operCode}); + return ((string)(results[0])); + } + + /// + public void LogoutAsync(string operCode) { + this.LogoutAsync(operCode, null); + } + + /// + public void LogoutAsync(string operCode, object userState) { + if ((this.LogoutOperationCompleted == null)) { + this.LogoutOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLogoutOperationCompleted); + } + this.InvokeAsync("Logout", new object[] { + operCode}, this.LogoutOperationCompleted, userState); + } + + private void OnLogoutOperationCompleted(object arg) { + if ((this.LogoutCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LogoutCompleted(this, new LogoutCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ModifyPassword", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ModifyPassword(string operCode, string oldPass, string newPass) { + object[] results = this.Invoke("ModifyPassword", new object[] { + operCode, + oldPass, + newPass}); + return ((string)(results[0])); + } + + /// + public void ModifyPasswordAsync(string operCode, string oldPass, string newPass) { + this.ModifyPasswordAsync(operCode, oldPass, newPass, null); + } + + /// + public void ModifyPasswordAsync(string operCode, string oldPass, string newPass, object userState) { + if ((this.ModifyPasswordOperationCompleted == null)) { + this.ModifyPasswordOperationCompleted = new System.Threading.SendOrPostCallback(this.OnModifyPasswordOperationCompleted); + } + this.InvokeAsync("ModifyPassword", new object[] { + operCode, + oldPass, + newPass}, this.ModifyPasswordOperationCompleted, userState); + } + + private void OnModifyPasswordOperationCompleted(object arg) { + if ((this.ModifyPasswordCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ModifyPasswordCompleted(this, new ModifyPasswordCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetServerTime", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public System.DateTime GetServerTime() { + object[] results = this.Invoke("GetServerTime", new object[0]); + return ((System.DateTime)(results[0])); + } + + /// + public void GetServerTimeAsync() { + this.GetServerTimeAsync(null); + } + + /// + public void GetServerTimeAsync(object userState) { + if ((this.GetServerTimeOperationCompleted == null)) { + this.GetServerTimeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetServerTimeOperationCompleted); + } + this.InvokeAsync("GetServerTime", new object[0], this.GetServerTimeOperationCompleted, userState); + } + + private void OnGetServerTimeOperationCompleted(object arg) { + if ((this.GetServerTimeCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetServerTimeCompleted(this, new GetServerTimeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Decrypt", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Decrypt(string str) { + object[] results = this.Invoke("Decrypt", new object[] { + str}); + return ((string)(results[0])); + } + + /// + public void DecryptAsync(string str) { + this.DecryptAsync(str, null); + } + + /// + public void DecryptAsync(string str, object userState) { + if ((this.DecryptOperationCompleted == null)) { + this.DecryptOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDecryptOperationCompleted); + } + this.InvokeAsync("Decrypt", new object[] { + str}, this.DecryptOperationCompleted, userState); + } + + private void OnDecryptOperationCompleted(object arg) { + if ((this.DecryptCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.DecryptCompleted(this, new DecryptCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Encrypt", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Encrypt(string str) { + object[] results = this.Invoke("Encrypt", new object[] { + str}); + return ((string)(results[0])); + } + + /// + public void EncryptAsync(string str) { + this.EncryptAsync(str, null); + } + + /// + public void EncryptAsync(string str, object userState) { + if ((this.EncryptOperationCompleted == null)) { + this.EncryptOperationCompleted = new System.Threading.SendOrPostCallback(this.OnEncryptOperationCompleted); + } + this.InvokeAsync("Encrypt", new object[] { + str}, this.EncryptOperationCompleted, userState); + } + + private void OnEncryptOperationCompleted(object arg) { + if ((this.EncryptCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.EncryptCompleted(this, new EncryptCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCount", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public int GetCount(string jsonParam) { + object[] results = this.Invoke("GetCount", new object[] { + jsonParam}); + return ((int)(results[0])); + } + + /// + public void GetCountAsync(string jsonParam) { + this.GetCountAsync(jsonParam, null); + } + + /// + public void GetCountAsync(string jsonParam, object userState) { + if ((this.GetCountOperationCompleted == null)) { + this.GetCountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCountOperationCompleted); + } + this.InvokeAsync("GetCount", new object[] { + jsonParam}, this.GetCountOperationCompleted, userState); + } + + private void OnGetCountOperationCompleted(object arg) { + if ((this.GetCountCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetCountCompleted(this, new GetCountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetData(string jsonParam) { + object[] results = this.Invoke("GetData", new object[] { + jsonParam}); + return ((string)(results[0])); + } + + /// + public void GetDataAsync(string jsonParam) { + this.GetDataAsync(jsonParam, null); + } + + /// + public void GetDataAsync(string jsonParam, object userState) { + if ((this.GetDataOperationCompleted == null)) { + this.GetDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDataOperationCompleted); + } + this.InvokeAsync("GetData", new object[] { + jsonParam}, this.GetDataOperationCompleted, userState); + } + + private void OnGetDataOperationCompleted(object arg) { + if ((this.GetDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetDataCompleted(this, new GetDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddData(string jsonParam, string strJson) { + object[] results = this.Invoke("AddData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void AddDataAsync(string jsonParam, string strJson) { + this.AddDataAsync(jsonParam, strJson, null); + } + + /// + public void AddDataAsync(string jsonParam, string strJson, object userState) { + if ((this.AddDataOperationCompleted == null)) { + this.AddDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddDataOperationCompleted); + } + this.InvokeAsync("AddData", new object[] { + jsonParam, + strJson}, this.AddDataOperationCompleted, userState); + } + + private void OnAddDataOperationCompleted(object arg) { + if ((this.AddDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddDataCompleted(this, new AddDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBomVersion", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetBomVersion(string ParentPartCode, string SubPartCode) { + object[] results = this.Invoke("GetBomVersion", new object[] { + ParentPartCode, + SubPartCode}); + return ((string)(results[0])); + } + + /// + public void GetBomVersionAsync(string ParentPartCode, string SubPartCode) { + this.GetBomVersionAsync(ParentPartCode, SubPartCode, null); + } + + /// + public void GetBomVersionAsync(string ParentPartCode, string SubPartCode, object userState) { + if ((this.GetBomVersionOperationCompleted == null)) { + this.GetBomVersionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBomVersionOperationCompleted); + } + this.InvokeAsync("GetBomVersion", new object[] { + ParentPartCode, + SubPartCode}, this.GetBomVersionOperationCompleted, userState); + } + + private void OnGetBomVersionOperationCompleted(object arg) { + if ((this.GetBomVersionCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetBomVersionCompleted(this, new GetBomVersionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBomsByVer", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetBomsByVer(string parentPart, string bomVer) { + object[] results = this.Invoke("GetBomsByVer", new object[] { + parentPart, + bomVer}); + return ((string)(results[0])); + } + + /// + public void GetBomsByVerAsync(string parentPart, string bomVer) { + this.GetBomsByVerAsync(parentPart, bomVer, null); + } + + /// + public void GetBomsByVerAsync(string parentPart, string bomVer, object userState) { + if ((this.GetBomsByVerOperationCompleted == null)) { + this.GetBomsByVerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBomsByVerOperationCompleted); + } + this.InvokeAsync("GetBomsByVer", new object[] { + parentPart, + bomVer}, this.GetBomsByVerOperationCompleted, userState); + } + + private void OnGetBomsByVerOperationCompleted(object arg) { + if ((this.GetBomsByVerCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetBomsByVerCompleted(this, new GetBomsByVerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBom", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetBom(string pcode, string scode) { + object[] results = this.Invoke("GetBom", new object[] { + pcode, + scode}); + return ((string)(results[0])); + } + + /// + public void GetBomAsync(string pcode, string scode) { + this.GetBomAsync(pcode, scode, null); + } + + /// + public void GetBomAsync(string pcode, string scode, object userState) { + if ((this.GetBomOperationCompleted == null)) { + this.GetBomOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBomOperationCompleted); + } + this.InvokeAsync("GetBom", new object[] { + pcode, + scode}, this.GetBomOperationCompleted, userState); + } + + private void OnGetBomOperationCompleted(object arg) { + if ((this.GetBomCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetBomCompleted(this, new GetBomCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string UpdateData(string jsonParam, string strJson) { + object[] results = this.Invoke("UpdateData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void UpdateDataAsync(string jsonParam, string strJson) { + this.UpdateDataAsync(jsonParam, strJson, null); + } + + /// + public void UpdateDataAsync(string jsonParam, string strJson, object userState) { + if ((this.UpdateDataOperationCompleted == null)) { + this.UpdateDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateDataOperationCompleted); + } + this.InvokeAsync("UpdateData", new object[] { + jsonParam, + strJson}, this.UpdateDataOperationCompleted, userState); + } + + private void OnUpdateDataOperationCompleted(object arg) { + if ((this.UpdateDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.UpdateDataCompleted(this, new UpdateDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SaveSeqencing", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string SaveSeqencing(string strJson) { + object[] results = this.Invoke("SaveSeqencing", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void SaveSeqencingAsync(string strJson) { + this.SaveSeqencingAsync(strJson, null); + } + + /// + public void SaveSeqencingAsync(string strJson, object userState) { + if ((this.SaveSeqencingOperationCompleted == null)) { + this.SaveSeqencingOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSaveSeqencingOperationCompleted); + } + this.InvokeAsync("SaveSeqencing", new object[] { + strJson}, this.SaveSeqencingOperationCompleted, userState); + } + + private void OnSaveSeqencingOperationCompleted(object arg) { + if ((this.SaveSeqencingCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SaveSeqencingCompleted(this, new SaveSeqencingCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddMutualData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddMutualData(string jsonParam, string strJson) { + object[] results = this.Invoke("AddMutualData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void AddMutualDataAsync(string jsonParam, string strJson) { + this.AddMutualDataAsync(jsonParam, strJson, null); + } + + /// + public void AddMutualDataAsync(string jsonParam, string strJson, object userState) { + if ((this.AddMutualDataOperationCompleted == null)) { + this.AddMutualDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMutualDataOperationCompleted); + } + this.InvokeAsync("AddMutualData", new object[] { + jsonParam, + strJson}, this.AddMutualDataOperationCompleted, userState); + } + + private void OnAddMutualDataOperationCompleted(object arg) { + if ((this.AddMutualDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddMutualDataCompleted(this, new AddMutualDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ReceiveProducts", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ReceiveProducts(string jsonParam) { + object[] results = this.Invoke("ReceiveProducts", new object[] { + jsonParam}); + return ((string)(results[0])); + } + + /// + public void ReceiveProductsAsync(string jsonParam) { + this.ReceiveProductsAsync(jsonParam, null); + } + + /// + public void ReceiveProductsAsync(string jsonParam, object userState) { + if ((this.ReceiveProductsOperationCompleted == null)) { + this.ReceiveProductsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnReceiveProductsOperationCompleted); + } + this.InvokeAsync("ReceiveProducts", new object[] { + jsonParam}, this.ReceiveProductsOperationCompleted, userState); + } + + private void OnReceiveProductsOperationCompleted(object arg) { + if ((this.ReceiveProductsCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ReceiveProductsCompleted(this, new ReceiveProductsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ContainerReceive", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ContainerReceive(string strJson) { + object[] results = this.Invoke("ContainerReceive", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void ContainerReceiveAsync(string strJson) { + this.ContainerReceiveAsync(strJson, null); + } + + /// + public void ContainerReceiveAsync(string strJson, object userState) { + if ((this.ContainerReceiveOperationCompleted == null)) { + this.ContainerReceiveOperationCompleted = new System.Threading.SendOrPostCallback(this.OnContainerReceiveOperationCompleted); + } + this.InvokeAsync("ContainerReceive", new object[] { + strJson}, this.ContainerReceiveOperationCompleted, userState); + } + + private void OnContainerReceiveOperationCompleted(object arg) { + if ((this.ContainerReceiveCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ContainerReceiveCompleted(this, new ContainerReceiveCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ContainerOut", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ContainerOut(string strJson) { + object[] results = this.Invoke("ContainerOut", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void ContainerOutAsync(string strJson) { + this.ContainerOutAsync(strJson, null); + } + + /// + public void ContainerOutAsync(string strJson, object userState) { + if ((this.ContainerOutOperationCompleted == null)) { + this.ContainerOutOperationCompleted = new System.Threading.SendOrPostCallback(this.OnContainerOutOperationCompleted); + } + this.InvokeAsync("ContainerOut", new object[] { + strJson}, this.ContainerOutOperationCompleted, userState); + } + + private void OnContainerOutOperationCompleted(object arg) { + if ((this.ContainerOutCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ContainerOutCompleted(this, new ContainerOutCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CheckComesback", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string CheckComesback(string strJson) { + object[] results = this.Invoke("CheckComesback", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void CheckComesbackAsync(string strJson) { + this.CheckComesbackAsync(strJson, null); + } + + /// + public void CheckComesbackAsync(string strJson, object userState) { + if ((this.CheckComesbackOperationCompleted == null)) { + this.CheckComesbackOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckComesbackOperationCompleted); + } + this.InvokeAsync("CheckComesback", new object[] { + strJson}, this.CheckComesbackOperationCompleted, userState); + } + + private void OnCheckComesbackOperationCompleted(object arg) { + if ((this.CheckComesbackCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.CheckComesbackCompleted(this, new CheckComesbackCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CreateBillMA", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string CreateBillMA(string strJson) { + object[] results = this.Invoke("CreateBillMA", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void CreateBillMAAsync(string strJson) { + this.CreateBillMAAsync(strJson, null); + } + + /// + public void CreateBillMAAsync(string strJson, object userState) { + if ((this.CreateBillMAOperationCompleted == null)) { + this.CreateBillMAOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateBillMAOperationCompleted); + } + this.InvokeAsync("CreateBillMA", new object[] { + strJson}, this.CreateBillMAOperationCompleted, userState); + } + + private void OnCreateBillMAOperationCompleted(object arg) { + if ((this.CreateBillMACompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.CreateBillMACompleted(this, new CreateBillMACompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddMesFGFin", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddMesFGFin(string strJson) { + object[] results = this.Invoke("AddMesFGFin", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void AddMesFGFinAsync(string strJson) { + this.AddMesFGFinAsync(strJson, null); + } + + /// + public void AddMesFGFinAsync(string strJson, object userState) { + if ((this.AddMesFGFinOperationCompleted == null)) { + this.AddMesFGFinOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMesFGFinOperationCompleted); + } + this.InvokeAsync("AddMesFGFin", new object[] { + strJson}, this.AddMesFGFinOperationCompleted, userState); + } + + private void OnAddMesFGFinOperationCompleted(object arg) { + if ((this.AddMesFGFinCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddMesFGFinCompleted(this, new AddMesFGFinCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateBillState", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string UpdateBillState(string strJson) { + object[] results = this.Invoke("UpdateBillState", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void UpdateBillStateAsync(string strJson) { + this.UpdateBillStateAsync(strJson, null); + } + + /// + public void UpdateBillStateAsync(string strJson, object userState) { + if ((this.UpdateBillStateOperationCompleted == null)) { + this.UpdateBillStateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateBillStateOperationCompleted); + } + this.InvokeAsync("UpdateBillState", new object[] { + strJson}, this.UpdateBillStateOperationCompleted, userState); + } + + private void OnUpdateBillStateOperationCompleted(object arg) { + if ((this.UpdateBillStateCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.UpdateBillStateCompleted(this, new UpdateBillStateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) { + if (((url == null) + || (url == string.Empty))) { + return false; + } + System.Uri wsUri = new System.Uri(url); + if (((wsUri.Port >= 1024) + && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetVerCompletedEventHandler(object sender, GetVerCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetVerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetVerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void WriteLogCompletedEventHandler(object sender, WriteLogCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class WriteLogCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal WriteLogCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LoginCompletedEventHandler(object sender, LoginCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void NewLoginCompletedEventHandler(object sender, NewLoginCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class NewLoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal NewLoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LogoutCompletedEventHandler(object sender, LogoutCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LogoutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LogoutCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ModifyPasswordCompletedEventHandler(object sender, ModifyPasswordCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ModifyPasswordCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ModifyPasswordCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetServerTimeCompletedEventHandler(object sender, GetServerTimeCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetServerTimeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetServerTimeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public System.DateTime Result { + get { + this.RaiseExceptionIfNecessary(); + return ((System.DateTime)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void DecryptCompletedEventHandler(object sender, DecryptCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DecryptCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal DecryptCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void EncryptCompletedEventHandler(object sender, EncryptCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class EncryptCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal EncryptCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetCountCompletedEventHandler(object sender, GetCountCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetCountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetCountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public int Result { + get { + this.RaiseExceptionIfNecessary(); + return ((int)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetDataCompletedEventHandler(object sender, GetDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddDataCompletedEventHandler(object sender, AddDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetBomVersionCompletedEventHandler(object sender, GetBomVersionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetBomVersionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetBomVersionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetBomsByVerCompletedEventHandler(object sender, GetBomsByVerCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetBomsByVerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetBomsByVerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetBomCompletedEventHandler(object sender, GetBomCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetBomCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetBomCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void UpdateDataCompletedEventHandler(object sender, UpdateDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class UpdateDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal UpdateDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void SaveSeqencingCompletedEventHandler(object sender, SaveSeqencingCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class SaveSeqencingCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal SaveSeqencingCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddMutualDataCompletedEventHandler(object sender, AddMutualDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddMutualDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddMutualDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ReceiveProductsCompletedEventHandler(object sender, ReceiveProductsCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ReceiveProductsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ReceiveProductsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ContainerReceiveCompletedEventHandler(object sender, ContainerReceiveCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ContainerReceiveCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ContainerReceiveCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ContainerOutCompletedEventHandler(object sender, ContainerOutCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ContainerOutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ContainerOutCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void CheckComesbackCompletedEventHandler(object sender, CheckComesbackCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class CheckComesbackCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal CheckComesbackCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void CreateBillMACompletedEventHandler(object sender, CreateBillMACompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class CreateBillMACompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal CreateBillMACompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddMesFGFinCompletedEventHandler(object sender, AddMesFGFinCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddMesFGFinCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddMesFGFinCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void UpdateBillStateCompletedEventHandler(object sender, UpdateBillStateCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class UpdateBillStateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal UpdateBillStateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Controller/Web References/BomList/Reference.map b/Controller/Web References/BomList/Reference.map new file mode 100644 index 0000000..fc9fb38 --- /dev/null +++ b/Controller/Web References/BomList/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomList1/JsonService.disco b/Controller/Web References/BomList1/JsonService.disco new file mode 100644 index 0000000..b7c36dc --- /dev/null +++ b/Controller/Web References/BomList1/JsonService.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomList1/JsonService.wsdl b/Controller/Web References/BomList1/JsonService.wsdl new file mode 100644 index 0000000..91b67eb --- /dev/null +++ b/Controller/Web References/BomList1/JsonService.wsdl @@ -0,0 +1,2062 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomList1/Reference.cs b/Controller/Web References/BomList1/Reference.cs new file mode 100644 index 0000000..0c740ab --- /dev/null +++ b/Controller/Web References/BomList1/Reference.cs @@ -0,0 +1,1610 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +// +// 此源代码是由 Microsoft.VSDesigner 4.0.30319.42000 版自动生成。 +// +#pragma warning disable 1591 + +namespace CK.SCP.Controller.BomList1 { + using System; + using System.Web.Services; + using System.Diagnostics; + using System.Web.Services.Protocols; + using System.Xml.Serialization; + using System.ComponentModel; + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Web.Services.WebServiceBindingAttribute(Name="JsonServiceSoap", Namespace="http://tempuri.org/")] + public partial class JsonService : System.Web.Services.Protocols.SoapHttpClientProtocol { + + private System.Threading.SendOrPostCallback GetVerOperationCompleted; + + private System.Threading.SendOrPostCallback WriteLogOperationCompleted; + + private System.Threading.SendOrPostCallback LoginOperationCompleted; + + private System.Threading.SendOrPostCallback NewLoginOperationCompleted; + + private System.Threading.SendOrPostCallback LogoutOperationCompleted; + + private System.Threading.SendOrPostCallback ModifyPasswordOperationCompleted; + + private System.Threading.SendOrPostCallback GetServerTimeOperationCompleted; + + private System.Threading.SendOrPostCallback DecryptOperationCompleted; + + private System.Threading.SendOrPostCallback EncryptOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountOperationCompleted; + + private System.Threading.SendOrPostCallback GetDataOperationCompleted; + + private System.Threading.SendOrPostCallback AddDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetBomVersionOperationCompleted; + + private System.Threading.SendOrPostCallback GetBomsByVerOperationCompleted; + + private System.Threading.SendOrPostCallback GetBomOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateDataOperationCompleted; + + private System.Threading.SendOrPostCallback SaveSeqencingOperationCompleted; + + private System.Threading.SendOrPostCallback AddMutualDataOperationCompleted; + + private System.Threading.SendOrPostCallback ReceiveProductsOperationCompleted; + + private System.Threading.SendOrPostCallback ContainerReceiveOperationCompleted; + + private System.Threading.SendOrPostCallback ContainerOutOperationCompleted; + + private System.Threading.SendOrPostCallback CheckComesbackOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBillMAOperationCompleted; + + private System.Threading.SendOrPostCallback AddMesFGFinOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateBillStateOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public JsonService() { + this.Url = global::CK.SCP.Controller.Properties.Settings.Default.CK_SCP_Controller_BomList1_JsonService; + if ((this.IsLocalFileSystemWebService(this.Url) == true)) { + this.UseDefaultCredentials = true; + this.useDefaultCredentialsSetExplicitly = false; + } + else { + this.useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url { + get { + return base.Url; + } + set { + if ((((this.IsLocalFileSystemWebService(base.Url) == true) + && (this.useDefaultCredentialsSetExplicitly == false)) + && (this.IsLocalFileSystemWebService(value) == false))) { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials { + get { + return base.UseDefaultCredentials; + } + set { + base.UseDefaultCredentials = value; + this.useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event GetVerCompletedEventHandler GetVerCompleted; + + /// + public event WriteLogCompletedEventHandler WriteLogCompleted; + + /// + public event LoginCompletedEventHandler LoginCompleted; + + /// + public event NewLoginCompletedEventHandler NewLoginCompleted; + + /// + public event LogoutCompletedEventHandler LogoutCompleted; + + /// + public event ModifyPasswordCompletedEventHandler ModifyPasswordCompleted; + + /// + public event GetServerTimeCompletedEventHandler GetServerTimeCompleted; + + /// + public event DecryptCompletedEventHandler DecryptCompleted; + + /// + public event EncryptCompletedEventHandler EncryptCompleted; + + /// + public event GetCountCompletedEventHandler GetCountCompleted; + + /// + public event GetDataCompletedEventHandler GetDataCompleted; + + /// + public event AddDataCompletedEventHandler AddDataCompleted; + + /// + public event GetBomVersionCompletedEventHandler GetBomVersionCompleted; + + /// + public event GetBomsByVerCompletedEventHandler GetBomsByVerCompleted; + + /// + public event GetBomCompletedEventHandler GetBomCompleted; + + /// + public event UpdateDataCompletedEventHandler UpdateDataCompleted; + + /// + public event SaveSeqencingCompletedEventHandler SaveSeqencingCompleted; + + /// + public event AddMutualDataCompletedEventHandler AddMutualDataCompleted; + + /// + public event ReceiveProductsCompletedEventHandler ReceiveProductsCompleted; + + /// + public event ContainerReceiveCompletedEventHandler ContainerReceiveCompleted; + + /// + public event ContainerOutCompletedEventHandler ContainerOutCompleted; + + /// + public event CheckComesbackCompletedEventHandler CheckComesbackCompleted; + + /// + public event CreateBillMACompletedEventHandler CreateBillMACompleted; + + /// + public event AddMesFGFinCompletedEventHandler AddMesFGFinCompleted; + + /// + public event UpdateBillStateCompletedEventHandler UpdateBillStateCompleted; + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetVer", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetVer() { + object[] results = this.Invoke("GetVer", new object[0]); + return ((string)(results[0])); + } + + /// + public void GetVerAsync() { + this.GetVerAsync(null); + } + + /// + public void GetVerAsync(object userState) { + if ((this.GetVerOperationCompleted == null)) { + this.GetVerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetVerOperationCompleted); + } + this.InvokeAsync("GetVer", new object[0], this.GetVerOperationCompleted, userState); + } + + private void OnGetVerOperationCompleted(object arg) { + if ((this.GetVerCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetVerCompleted(this, new GetVerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/WriteLog", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string WriteLog(string operCode, string function, string message) { + object[] results = this.Invoke("WriteLog", new object[] { + operCode, + function, + message}); + return ((string)(results[0])); + } + + /// + public void WriteLogAsync(string operCode, string function, string message) { + this.WriteLogAsync(operCode, function, message, null); + } + + /// + public void WriteLogAsync(string operCode, string function, string message, object userState) { + if ((this.WriteLogOperationCompleted == null)) { + this.WriteLogOperationCompleted = new System.Threading.SendOrPostCallback(this.OnWriteLogOperationCompleted); + } + this.InvokeAsync("WriteLog", new object[] { + operCode, + function, + message}, this.WriteLogOperationCompleted, userState); + } + + private void OnWriteLogOperationCompleted(object arg) { + if ((this.WriteLogCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.WriteLogCompleted(this, new WriteLogCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Login", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Login(string operCode, string password) { + object[] results = this.Invoke("Login", new object[] { + operCode, + password}); + return ((string)(results[0])); + } + + /// + public void LoginAsync(string operCode, string password) { + this.LoginAsync(operCode, password, null); + } + + /// + public void LoginAsync(string operCode, string password, object userState) { + if ((this.LoginOperationCompleted == null)) { + this.LoginOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLoginOperationCompleted); + } + this.InvokeAsync("Login", new object[] { + operCode, + password}, this.LoginOperationCompleted, userState); + } + + private void OnLoginOperationCompleted(object arg) { + if ((this.LoginCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LoginCompleted(this, new LoginCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/NewLogin", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string NewLogin(string operCode, string password) { + object[] results = this.Invoke("NewLogin", new object[] { + operCode, + password}); + return ((string)(results[0])); + } + + /// + public void NewLoginAsync(string operCode, string password) { + this.NewLoginAsync(operCode, password, null); + } + + /// + public void NewLoginAsync(string operCode, string password, object userState) { + if ((this.NewLoginOperationCompleted == null)) { + this.NewLoginOperationCompleted = new System.Threading.SendOrPostCallback(this.OnNewLoginOperationCompleted); + } + this.InvokeAsync("NewLogin", new object[] { + operCode, + password}, this.NewLoginOperationCompleted, userState); + } + + private void OnNewLoginOperationCompleted(object arg) { + if ((this.NewLoginCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.NewLoginCompleted(this, new NewLoginCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Logout", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Logout(string operCode) { + object[] results = this.Invoke("Logout", new object[] { + operCode}); + return ((string)(results[0])); + } + + /// + public void LogoutAsync(string operCode) { + this.LogoutAsync(operCode, null); + } + + /// + public void LogoutAsync(string operCode, object userState) { + if ((this.LogoutOperationCompleted == null)) { + this.LogoutOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLogoutOperationCompleted); + } + this.InvokeAsync("Logout", new object[] { + operCode}, this.LogoutOperationCompleted, userState); + } + + private void OnLogoutOperationCompleted(object arg) { + if ((this.LogoutCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LogoutCompleted(this, new LogoutCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ModifyPassword", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ModifyPassword(string operCode, string oldPass, string newPass) { + object[] results = this.Invoke("ModifyPassword", new object[] { + operCode, + oldPass, + newPass}); + return ((string)(results[0])); + } + + /// + public void ModifyPasswordAsync(string operCode, string oldPass, string newPass) { + this.ModifyPasswordAsync(operCode, oldPass, newPass, null); + } + + /// + public void ModifyPasswordAsync(string operCode, string oldPass, string newPass, object userState) { + if ((this.ModifyPasswordOperationCompleted == null)) { + this.ModifyPasswordOperationCompleted = new System.Threading.SendOrPostCallback(this.OnModifyPasswordOperationCompleted); + } + this.InvokeAsync("ModifyPassword", new object[] { + operCode, + oldPass, + newPass}, this.ModifyPasswordOperationCompleted, userState); + } + + private void OnModifyPasswordOperationCompleted(object arg) { + if ((this.ModifyPasswordCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ModifyPasswordCompleted(this, new ModifyPasswordCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetServerTime", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public System.DateTime GetServerTime() { + object[] results = this.Invoke("GetServerTime", new object[0]); + return ((System.DateTime)(results[0])); + } + + /// + public void GetServerTimeAsync() { + this.GetServerTimeAsync(null); + } + + /// + public void GetServerTimeAsync(object userState) { + if ((this.GetServerTimeOperationCompleted == null)) { + this.GetServerTimeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetServerTimeOperationCompleted); + } + this.InvokeAsync("GetServerTime", new object[0], this.GetServerTimeOperationCompleted, userState); + } + + private void OnGetServerTimeOperationCompleted(object arg) { + if ((this.GetServerTimeCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetServerTimeCompleted(this, new GetServerTimeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Decrypt", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Decrypt(string str) { + object[] results = this.Invoke("Decrypt", new object[] { + str}); + return ((string)(results[0])); + } + + /// + public void DecryptAsync(string str) { + this.DecryptAsync(str, null); + } + + /// + public void DecryptAsync(string str, object userState) { + if ((this.DecryptOperationCompleted == null)) { + this.DecryptOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDecryptOperationCompleted); + } + this.InvokeAsync("Decrypt", new object[] { + str}, this.DecryptOperationCompleted, userState); + } + + private void OnDecryptOperationCompleted(object arg) { + if ((this.DecryptCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.DecryptCompleted(this, new DecryptCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Encrypt", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Encrypt(string str) { + object[] results = this.Invoke("Encrypt", new object[] { + str}); + return ((string)(results[0])); + } + + /// + public void EncryptAsync(string str) { + this.EncryptAsync(str, null); + } + + /// + public void EncryptAsync(string str, object userState) { + if ((this.EncryptOperationCompleted == null)) { + this.EncryptOperationCompleted = new System.Threading.SendOrPostCallback(this.OnEncryptOperationCompleted); + } + this.InvokeAsync("Encrypt", new object[] { + str}, this.EncryptOperationCompleted, userState); + } + + private void OnEncryptOperationCompleted(object arg) { + if ((this.EncryptCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.EncryptCompleted(this, new EncryptCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCount", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public int GetCount(string jsonParam) { + object[] results = this.Invoke("GetCount", new object[] { + jsonParam}); + return ((int)(results[0])); + } + + /// + public void GetCountAsync(string jsonParam) { + this.GetCountAsync(jsonParam, null); + } + + /// + public void GetCountAsync(string jsonParam, object userState) { + if ((this.GetCountOperationCompleted == null)) { + this.GetCountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCountOperationCompleted); + } + this.InvokeAsync("GetCount", new object[] { + jsonParam}, this.GetCountOperationCompleted, userState); + } + + private void OnGetCountOperationCompleted(object arg) { + if ((this.GetCountCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetCountCompleted(this, new GetCountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetData(string jsonParam) { + object[] results = this.Invoke("GetData", new object[] { + jsonParam}); + return ((string)(results[0])); + } + + /// + public void GetDataAsync(string jsonParam) { + this.GetDataAsync(jsonParam, null); + } + + /// + public void GetDataAsync(string jsonParam, object userState) { + if ((this.GetDataOperationCompleted == null)) { + this.GetDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDataOperationCompleted); + } + this.InvokeAsync("GetData", new object[] { + jsonParam}, this.GetDataOperationCompleted, userState); + } + + private void OnGetDataOperationCompleted(object arg) { + if ((this.GetDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetDataCompleted(this, new GetDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddData(string jsonParam, string strJson) { + object[] results = this.Invoke("AddData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void AddDataAsync(string jsonParam, string strJson) { + this.AddDataAsync(jsonParam, strJson, null); + } + + /// + public void AddDataAsync(string jsonParam, string strJson, object userState) { + if ((this.AddDataOperationCompleted == null)) { + this.AddDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddDataOperationCompleted); + } + this.InvokeAsync("AddData", new object[] { + jsonParam, + strJson}, this.AddDataOperationCompleted, userState); + } + + private void OnAddDataOperationCompleted(object arg) { + if ((this.AddDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddDataCompleted(this, new AddDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBomVersion", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetBomVersion(string ParentPartCode, string SubPartCode) { + object[] results = this.Invoke("GetBomVersion", new object[] { + ParentPartCode, + SubPartCode}); + return ((string)(results[0])); + } + + /// + public void GetBomVersionAsync(string ParentPartCode, string SubPartCode) { + this.GetBomVersionAsync(ParentPartCode, SubPartCode, null); + } + + /// + public void GetBomVersionAsync(string ParentPartCode, string SubPartCode, object userState) { + if ((this.GetBomVersionOperationCompleted == null)) { + this.GetBomVersionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBomVersionOperationCompleted); + } + this.InvokeAsync("GetBomVersion", new object[] { + ParentPartCode, + SubPartCode}, this.GetBomVersionOperationCompleted, userState); + } + + private void OnGetBomVersionOperationCompleted(object arg) { + if ((this.GetBomVersionCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetBomVersionCompleted(this, new GetBomVersionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBomsByVer", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetBomsByVer(string parentPart, string bomVer) { + object[] results = this.Invoke("GetBomsByVer", new object[] { + parentPart, + bomVer}); + return ((string)(results[0])); + } + + /// + public void GetBomsByVerAsync(string parentPart, string bomVer) { + this.GetBomsByVerAsync(parentPart, bomVer, null); + } + + /// + public void GetBomsByVerAsync(string parentPart, string bomVer, object userState) { + if ((this.GetBomsByVerOperationCompleted == null)) { + this.GetBomsByVerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBomsByVerOperationCompleted); + } + this.InvokeAsync("GetBomsByVer", new object[] { + parentPart, + bomVer}, this.GetBomsByVerOperationCompleted, userState); + } + + private void OnGetBomsByVerOperationCompleted(object arg) { + if ((this.GetBomsByVerCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetBomsByVerCompleted(this, new GetBomsByVerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBom", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetBom(string pcode, string scode) { + object[] results = this.Invoke("GetBom", new object[] { + pcode, + scode}); + return ((string)(results[0])); + } + + /// + public void GetBomAsync(string pcode, string scode) { + this.GetBomAsync(pcode, scode, null); + } + + /// + public void GetBomAsync(string pcode, string scode, object userState) { + if ((this.GetBomOperationCompleted == null)) { + this.GetBomOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBomOperationCompleted); + } + this.InvokeAsync("GetBom", new object[] { + pcode, + scode}, this.GetBomOperationCompleted, userState); + } + + private void OnGetBomOperationCompleted(object arg) { + if ((this.GetBomCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetBomCompleted(this, new GetBomCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string UpdateData(string jsonParam, string strJson) { + object[] results = this.Invoke("UpdateData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void UpdateDataAsync(string jsonParam, string strJson) { + this.UpdateDataAsync(jsonParam, strJson, null); + } + + /// + public void UpdateDataAsync(string jsonParam, string strJson, object userState) { + if ((this.UpdateDataOperationCompleted == null)) { + this.UpdateDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateDataOperationCompleted); + } + this.InvokeAsync("UpdateData", new object[] { + jsonParam, + strJson}, this.UpdateDataOperationCompleted, userState); + } + + private void OnUpdateDataOperationCompleted(object arg) { + if ((this.UpdateDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.UpdateDataCompleted(this, new UpdateDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SaveSeqencing", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string SaveSeqencing(string strJson) { + object[] results = this.Invoke("SaveSeqencing", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void SaveSeqencingAsync(string strJson) { + this.SaveSeqencingAsync(strJson, null); + } + + /// + public void SaveSeqencingAsync(string strJson, object userState) { + if ((this.SaveSeqencingOperationCompleted == null)) { + this.SaveSeqencingOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSaveSeqencingOperationCompleted); + } + this.InvokeAsync("SaveSeqencing", new object[] { + strJson}, this.SaveSeqencingOperationCompleted, userState); + } + + private void OnSaveSeqencingOperationCompleted(object arg) { + if ((this.SaveSeqencingCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SaveSeqencingCompleted(this, new SaveSeqencingCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddMutualData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddMutualData(string jsonParam, string strJson) { + object[] results = this.Invoke("AddMutualData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void AddMutualDataAsync(string jsonParam, string strJson) { + this.AddMutualDataAsync(jsonParam, strJson, null); + } + + /// + public void AddMutualDataAsync(string jsonParam, string strJson, object userState) { + if ((this.AddMutualDataOperationCompleted == null)) { + this.AddMutualDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMutualDataOperationCompleted); + } + this.InvokeAsync("AddMutualData", new object[] { + jsonParam, + strJson}, this.AddMutualDataOperationCompleted, userState); + } + + private void OnAddMutualDataOperationCompleted(object arg) { + if ((this.AddMutualDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddMutualDataCompleted(this, new AddMutualDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ReceiveProducts", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ReceiveProducts(string jsonParam) { + object[] results = this.Invoke("ReceiveProducts", new object[] { + jsonParam}); + return ((string)(results[0])); + } + + /// + public void ReceiveProductsAsync(string jsonParam) { + this.ReceiveProductsAsync(jsonParam, null); + } + + /// + public void ReceiveProductsAsync(string jsonParam, object userState) { + if ((this.ReceiveProductsOperationCompleted == null)) { + this.ReceiveProductsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnReceiveProductsOperationCompleted); + } + this.InvokeAsync("ReceiveProducts", new object[] { + jsonParam}, this.ReceiveProductsOperationCompleted, userState); + } + + private void OnReceiveProductsOperationCompleted(object arg) { + if ((this.ReceiveProductsCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ReceiveProductsCompleted(this, new ReceiveProductsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ContainerReceive", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ContainerReceive(string strJson) { + object[] results = this.Invoke("ContainerReceive", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void ContainerReceiveAsync(string strJson) { + this.ContainerReceiveAsync(strJson, null); + } + + /// + public void ContainerReceiveAsync(string strJson, object userState) { + if ((this.ContainerReceiveOperationCompleted == null)) { + this.ContainerReceiveOperationCompleted = new System.Threading.SendOrPostCallback(this.OnContainerReceiveOperationCompleted); + } + this.InvokeAsync("ContainerReceive", new object[] { + strJson}, this.ContainerReceiveOperationCompleted, userState); + } + + private void OnContainerReceiveOperationCompleted(object arg) { + if ((this.ContainerReceiveCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ContainerReceiveCompleted(this, new ContainerReceiveCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ContainerOut", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ContainerOut(string strJson) { + object[] results = this.Invoke("ContainerOut", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void ContainerOutAsync(string strJson) { + this.ContainerOutAsync(strJson, null); + } + + /// + public void ContainerOutAsync(string strJson, object userState) { + if ((this.ContainerOutOperationCompleted == null)) { + this.ContainerOutOperationCompleted = new System.Threading.SendOrPostCallback(this.OnContainerOutOperationCompleted); + } + this.InvokeAsync("ContainerOut", new object[] { + strJson}, this.ContainerOutOperationCompleted, userState); + } + + private void OnContainerOutOperationCompleted(object arg) { + if ((this.ContainerOutCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ContainerOutCompleted(this, new ContainerOutCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CheckComesback", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string CheckComesback(string strJson) { + object[] results = this.Invoke("CheckComesback", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void CheckComesbackAsync(string strJson) { + this.CheckComesbackAsync(strJson, null); + } + + /// + public void CheckComesbackAsync(string strJson, object userState) { + if ((this.CheckComesbackOperationCompleted == null)) { + this.CheckComesbackOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckComesbackOperationCompleted); + } + this.InvokeAsync("CheckComesback", new object[] { + strJson}, this.CheckComesbackOperationCompleted, userState); + } + + private void OnCheckComesbackOperationCompleted(object arg) { + if ((this.CheckComesbackCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.CheckComesbackCompleted(this, new CheckComesbackCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CreateBillMA", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string CreateBillMA(string strJson) { + object[] results = this.Invoke("CreateBillMA", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void CreateBillMAAsync(string strJson) { + this.CreateBillMAAsync(strJson, null); + } + + /// + public void CreateBillMAAsync(string strJson, object userState) { + if ((this.CreateBillMAOperationCompleted == null)) { + this.CreateBillMAOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateBillMAOperationCompleted); + } + this.InvokeAsync("CreateBillMA", new object[] { + strJson}, this.CreateBillMAOperationCompleted, userState); + } + + private void OnCreateBillMAOperationCompleted(object arg) { + if ((this.CreateBillMACompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.CreateBillMACompleted(this, new CreateBillMACompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddMesFGFin", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddMesFGFin(string strJson) { + object[] results = this.Invoke("AddMesFGFin", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void AddMesFGFinAsync(string strJson) { + this.AddMesFGFinAsync(strJson, null); + } + + /// + public void AddMesFGFinAsync(string strJson, object userState) { + if ((this.AddMesFGFinOperationCompleted == null)) { + this.AddMesFGFinOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMesFGFinOperationCompleted); + } + this.InvokeAsync("AddMesFGFin", new object[] { + strJson}, this.AddMesFGFinOperationCompleted, userState); + } + + private void OnAddMesFGFinOperationCompleted(object arg) { + if ((this.AddMesFGFinCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddMesFGFinCompleted(this, new AddMesFGFinCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateBillState", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string UpdateBillState(string strJson) { + object[] results = this.Invoke("UpdateBillState", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void UpdateBillStateAsync(string strJson) { + this.UpdateBillStateAsync(strJson, null); + } + + /// + public void UpdateBillStateAsync(string strJson, object userState) { + if ((this.UpdateBillStateOperationCompleted == null)) { + this.UpdateBillStateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateBillStateOperationCompleted); + } + this.InvokeAsync("UpdateBillState", new object[] { + strJson}, this.UpdateBillStateOperationCompleted, userState); + } + + private void OnUpdateBillStateOperationCompleted(object arg) { + if ((this.UpdateBillStateCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.UpdateBillStateCompleted(this, new UpdateBillStateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) { + if (((url == null) + || (url == string.Empty))) { + return false; + } + System.Uri wsUri = new System.Uri(url); + if (((wsUri.Port >= 1024) + && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetVerCompletedEventHandler(object sender, GetVerCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetVerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetVerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void WriteLogCompletedEventHandler(object sender, WriteLogCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class WriteLogCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal WriteLogCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LoginCompletedEventHandler(object sender, LoginCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void NewLoginCompletedEventHandler(object sender, NewLoginCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class NewLoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal NewLoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LogoutCompletedEventHandler(object sender, LogoutCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LogoutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LogoutCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ModifyPasswordCompletedEventHandler(object sender, ModifyPasswordCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ModifyPasswordCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ModifyPasswordCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetServerTimeCompletedEventHandler(object sender, GetServerTimeCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetServerTimeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetServerTimeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public System.DateTime Result { + get { + this.RaiseExceptionIfNecessary(); + return ((System.DateTime)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void DecryptCompletedEventHandler(object sender, DecryptCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DecryptCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal DecryptCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void EncryptCompletedEventHandler(object sender, EncryptCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class EncryptCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal EncryptCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetCountCompletedEventHandler(object sender, GetCountCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetCountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetCountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public int Result { + get { + this.RaiseExceptionIfNecessary(); + return ((int)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetDataCompletedEventHandler(object sender, GetDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddDataCompletedEventHandler(object sender, AddDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetBomVersionCompletedEventHandler(object sender, GetBomVersionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetBomVersionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetBomVersionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetBomsByVerCompletedEventHandler(object sender, GetBomsByVerCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetBomsByVerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetBomsByVerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetBomCompletedEventHandler(object sender, GetBomCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetBomCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetBomCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void UpdateDataCompletedEventHandler(object sender, UpdateDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class UpdateDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal UpdateDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void SaveSeqencingCompletedEventHandler(object sender, SaveSeqencingCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class SaveSeqencingCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal SaveSeqencingCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddMutualDataCompletedEventHandler(object sender, AddMutualDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddMutualDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddMutualDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ReceiveProductsCompletedEventHandler(object sender, ReceiveProductsCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ReceiveProductsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ReceiveProductsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ContainerReceiveCompletedEventHandler(object sender, ContainerReceiveCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ContainerReceiveCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ContainerReceiveCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ContainerOutCompletedEventHandler(object sender, ContainerOutCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ContainerOutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ContainerOutCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void CheckComesbackCompletedEventHandler(object sender, CheckComesbackCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class CheckComesbackCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal CheckComesbackCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void CreateBillMACompletedEventHandler(object sender, CreateBillMACompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class CreateBillMACompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal CreateBillMACompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddMesFGFinCompletedEventHandler(object sender, AddMesFGFinCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddMesFGFinCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddMesFGFinCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void UpdateBillStateCompletedEventHandler(object sender, UpdateBillStateCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class UpdateBillStateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal UpdateBillStateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Controller/Web References/BomList1/Reference.map b/Controller/Web References/BomList1/Reference.map new file mode 100644 index 0000000..169d3db --- /dev/null +++ b/Controller/Web References/BomList1/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomListcompany/JsonService.disco b/Controller/Web References/BomListcompany/JsonService.disco new file mode 100644 index 0000000..ed053f9 --- /dev/null +++ b/Controller/Web References/BomListcompany/JsonService.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomListcompany/JsonService.wsdl b/Controller/Web References/BomListcompany/JsonService.wsdl new file mode 100644 index 0000000..f03c3e8 --- /dev/null +++ b/Controller/Web References/BomListcompany/JsonService.wsdl @@ -0,0 +1,2062 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomListcompany/Reference.cs b/Controller/Web References/BomListcompany/Reference.cs new file mode 100644 index 0000000..ab2b525 --- /dev/null +++ b/Controller/Web References/BomListcompany/Reference.cs @@ -0,0 +1,1610 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +// +// 此源代码是由 Microsoft.VSDesigner 4.0.30319.42000 版自动生成。 +// +#pragma warning disable 1591 + +namespace CK.SCP.Controller.BomListcompany { + using System; + using System.Web.Services; + using System.Diagnostics; + using System.Web.Services.Protocols; + using System.Xml.Serialization; + using System.ComponentModel; + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Web.Services.WebServiceBindingAttribute(Name="JsonServiceSoap", Namespace="http://tempuri.org/")] + public partial class JsonService : System.Web.Services.Protocols.SoapHttpClientProtocol { + + private System.Threading.SendOrPostCallback GetVerOperationCompleted; + + private System.Threading.SendOrPostCallback WriteLogOperationCompleted; + + private System.Threading.SendOrPostCallback LoginOperationCompleted; + + private System.Threading.SendOrPostCallback NewLoginOperationCompleted; + + private System.Threading.SendOrPostCallback LogoutOperationCompleted; + + private System.Threading.SendOrPostCallback ModifyPasswordOperationCompleted; + + private System.Threading.SendOrPostCallback GetServerTimeOperationCompleted; + + private System.Threading.SendOrPostCallback DecryptOperationCompleted; + + private System.Threading.SendOrPostCallback EncryptOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountOperationCompleted; + + private System.Threading.SendOrPostCallback GetDataOperationCompleted; + + private System.Threading.SendOrPostCallback AddDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetBomVersionOperationCompleted; + + private System.Threading.SendOrPostCallback GetBomsByVerOperationCompleted; + + private System.Threading.SendOrPostCallback GetBomOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateDataOperationCompleted; + + private System.Threading.SendOrPostCallback SaveSeqencingOperationCompleted; + + private System.Threading.SendOrPostCallback AddMutualDataOperationCompleted; + + private System.Threading.SendOrPostCallback ReceiveProductsOperationCompleted; + + private System.Threading.SendOrPostCallback ContainerReceiveOperationCompleted; + + private System.Threading.SendOrPostCallback ContainerOutOperationCompleted; + + private System.Threading.SendOrPostCallback CheckComesbackOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBillMAOperationCompleted; + + private System.Threading.SendOrPostCallback AddMesFGFinOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateBillStateOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public JsonService() { + this.Url = global::CK.SCP.Controller.Properties.Settings.Default.CK_SCP_Controller_BomListcompany_JsonService; + if ((this.IsLocalFileSystemWebService(this.Url) == true)) { + this.UseDefaultCredentials = true; + this.useDefaultCredentialsSetExplicitly = false; + } + else { + this.useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url { + get { + return base.Url; + } + set { + if ((((this.IsLocalFileSystemWebService(base.Url) == true) + && (this.useDefaultCredentialsSetExplicitly == false)) + && (this.IsLocalFileSystemWebService(value) == false))) { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials { + get { + return base.UseDefaultCredentials; + } + set { + base.UseDefaultCredentials = value; + this.useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event GetVerCompletedEventHandler GetVerCompleted; + + /// + public event WriteLogCompletedEventHandler WriteLogCompleted; + + /// + public event LoginCompletedEventHandler LoginCompleted; + + /// + public event NewLoginCompletedEventHandler NewLoginCompleted; + + /// + public event LogoutCompletedEventHandler LogoutCompleted; + + /// + public event ModifyPasswordCompletedEventHandler ModifyPasswordCompleted; + + /// + public event GetServerTimeCompletedEventHandler GetServerTimeCompleted; + + /// + public event DecryptCompletedEventHandler DecryptCompleted; + + /// + public event EncryptCompletedEventHandler EncryptCompleted; + + /// + public event GetCountCompletedEventHandler GetCountCompleted; + + /// + public event GetDataCompletedEventHandler GetDataCompleted; + + /// + public event AddDataCompletedEventHandler AddDataCompleted; + + /// + public event GetBomVersionCompletedEventHandler GetBomVersionCompleted; + + /// + public event GetBomsByVerCompletedEventHandler GetBomsByVerCompleted; + + /// + public event GetBomCompletedEventHandler GetBomCompleted; + + /// + public event UpdateDataCompletedEventHandler UpdateDataCompleted; + + /// + public event SaveSeqencingCompletedEventHandler SaveSeqencingCompleted; + + /// + public event AddMutualDataCompletedEventHandler AddMutualDataCompleted; + + /// + public event ReceiveProductsCompletedEventHandler ReceiveProductsCompleted; + + /// + public event ContainerReceiveCompletedEventHandler ContainerReceiveCompleted; + + /// + public event ContainerOutCompletedEventHandler ContainerOutCompleted; + + /// + public event CheckComesbackCompletedEventHandler CheckComesbackCompleted; + + /// + public event CreateBillMACompletedEventHandler CreateBillMACompleted; + + /// + public event AddMesFGFinCompletedEventHandler AddMesFGFinCompleted; + + /// + public event UpdateBillStateCompletedEventHandler UpdateBillStateCompleted; + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetVer", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetVer() { + object[] results = this.Invoke("GetVer", new object[0]); + return ((string)(results[0])); + } + + /// + public void GetVerAsync() { + this.GetVerAsync(null); + } + + /// + public void GetVerAsync(object userState) { + if ((this.GetVerOperationCompleted == null)) { + this.GetVerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetVerOperationCompleted); + } + this.InvokeAsync("GetVer", new object[0], this.GetVerOperationCompleted, userState); + } + + private void OnGetVerOperationCompleted(object arg) { + if ((this.GetVerCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetVerCompleted(this, new GetVerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/WriteLog", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string WriteLog(string operCode, string function, string message) { + object[] results = this.Invoke("WriteLog", new object[] { + operCode, + function, + message}); + return ((string)(results[0])); + } + + /// + public void WriteLogAsync(string operCode, string function, string message) { + this.WriteLogAsync(operCode, function, message, null); + } + + /// + public void WriteLogAsync(string operCode, string function, string message, object userState) { + if ((this.WriteLogOperationCompleted == null)) { + this.WriteLogOperationCompleted = new System.Threading.SendOrPostCallback(this.OnWriteLogOperationCompleted); + } + this.InvokeAsync("WriteLog", new object[] { + operCode, + function, + message}, this.WriteLogOperationCompleted, userState); + } + + private void OnWriteLogOperationCompleted(object arg) { + if ((this.WriteLogCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.WriteLogCompleted(this, new WriteLogCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Login", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Login(string operCode, string password) { + object[] results = this.Invoke("Login", new object[] { + operCode, + password}); + return ((string)(results[0])); + } + + /// + public void LoginAsync(string operCode, string password) { + this.LoginAsync(operCode, password, null); + } + + /// + public void LoginAsync(string operCode, string password, object userState) { + if ((this.LoginOperationCompleted == null)) { + this.LoginOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLoginOperationCompleted); + } + this.InvokeAsync("Login", new object[] { + operCode, + password}, this.LoginOperationCompleted, userState); + } + + private void OnLoginOperationCompleted(object arg) { + if ((this.LoginCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LoginCompleted(this, new LoginCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/NewLogin", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string NewLogin(string operCode, string password) { + object[] results = this.Invoke("NewLogin", new object[] { + operCode, + password}); + return ((string)(results[0])); + } + + /// + public void NewLoginAsync(string operCode, string password) { + this.NewLoginAsync(operCode, password, null); + } + + /// + public void NewLoginAsync(string operCode, string password, object userState) { + if ((this.NewLoginOperationCompleted == null)) { + this.NewLoginOperationCompleted = new System.Threading.SendOrPostCallback(this.OnNewLoginOperationCompleted); + } + this.InvokeAsync("NewLogin", new object[] { + operCode, + password}, this.NewLoginOperationCompleted, userState); + } + + private void OnNewLoginOperationCompleted(object arg) { + if ((this.NewLoginCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.NewLoginCompleted(this, new NewLoginCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Logout", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Logout(string operCode) { + object[] results = this.Invoke("Logout", new object[] { + operCode}); + return ((string)(results[0])); + } + + /// + public void LogoutAsync(string operCode) { + this.LogoutAsync(operCode, null); + } + + /// + public void LogoutAsync(string operCode, object userState) { + if ((this.LogoutOperationCompleted == null)) { + this.LogoutOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLogoutOperationCompleted); + } + this.InvokeAsync("Logout", new object[] { + operCode}, this.LogoutOperationCompleted, userState); + } + + private void OnLogoutOperationCompleted(object arg) { + if ((this.LogoutCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LogoutCompleted(this, new LogoutCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ModifyPassword", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ModifyPassword(string operCode, string oldPass, string newPass) { + object[] results = this.Invoke("ModifyPassword", new object[] { + operCode, + oldPass, + newPass}); + return ((string)(results[0])); + } + + /// + public void ModifyPasswordAsync(string operCode, string oldPass, string newPass) { + this.ModifyPasswordAsync(operCode, oldPass, newPass, null); + } + + /// + public void ModifyPasswordAsync(string operCode, string oldPass, string newPass, object userState) { + if ((this.ModifyPasswordOperationCompleted == null)) { + this.ModifyPasswordOperationCompleted = new System.Threading.SendOrPostCallback(this.OnModifyPasswordOperationCompleted); + } + this.InvokeAsync("ModifyPassword", new object[] { + operCode, + oldPass, + newPass}, this.ModifyPasswordOperationCompleted, userState); + } + + private void OnModifyPasswordOperationCompleted(object arg) { + if ((this.ModifyPasswordCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ModifyPasswordCompleted(this, new ModifyPasswordCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetServerTime", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public System.DateTime GetServerTime() { + object[] results = this.Invoke("GetServerTime", new object[0]); + return ((System.DateTime)(results[0])); + } + + /// + public void GetServerTimeAsync() { + this.GetServerTimeAsync(null); + } + + /// + public void GetServerTimeAsync(object userState) { + if ((this.GetServerTimeOperationCompleted == null)) { + this.GetServerTimeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetServerTimeOperationCompleted); + } + this.InvokeAsync("GetServerTime", new object[0], this.GetServerTimeOperationCompleted, userState); + } + + private void OnGetServerTimeOperationCompleted(object arg) { + if ((this.GetServerTimeCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetServerTimeCompleted(this, new GetServerTimeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Decrypt", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Decrypt(string str) { + object[] results = this.Invoke("Decrypt", new object[] { + str}); + return ((string)(results[0])); + } + + /// + public void DecryptAsync(string str) { + this.DecryptAsync(str, null); + } + + /// + public void DecryptAsync(string str, object userState) { + if ((this.DecryptOperationCompleted == null)) { + this.DecryptOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDecryptOperationCompleted); + } + this.InvokeAsync("Decrypt", new object[] { + str}, this.DecryptOperationCompleted, userState); + } + + private void OnDecryptOperationCompleted(object arg) { + if ((this.DecryptCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.DecryptCompleted(this, new DecryptCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Encrypt", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Encrypt(string str) { + object[] results = this.Invoke("Encrypt", new object[] { + str}); + return ((string)(results[0])); + } + + /// + public void EncryptAsync(string str) { + this.EncryptAsync(str, null); + } + + /// + public void EncryptAsync(string str, object userState) { + if ((this.EncryptOperationCompleted == null)) { + this.EncryptOperationCompleted = new System.Threading.SendOrPostCallback(this.OnEncryptOperationCompleted); + } + this.InvokeAsync("Encrypt", new object[] { + str}, this.EncryptOperationCompleted, userState); + } + + private void OnEncryptOperationCompleted(object arg) { + if ((this.EncryptCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.EncryptCompleted(this, new EncryptCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCount", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public int GetCount(string jsonParam) { + object[] results = this.Invoke("GetCount", new object[] { + jsonParam}); + return ((int)(results[0])); + } + + /// + public void GetCountAsync(string jsonParam) { + this.GetCountAsync(jsonParam, null); + } + + /// + public void GetCountAsync(string jsonParam, object userState) { + if ((this.GetCountOperationCompleted == null)) { + this.GetCountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCountOperationCompleted); + } + this.InvokeAsync("GetCount", new object[] { + jsonParam}, this.GetCountOperationCompleted, userState); + } + + private void OnGetCountOperationCompleted(object arg) { + if ((this.GetCountCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetCountCompleted(this, new GetCountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetData(string jsonParam) { + object[] results = this.Invoke("GetData", new object[] { + jsonParam}); + return ((string)(results[0])); + } + + /// + public void GetDataAsync(string jsonParam) { + this.GetDataAsync(jsonParam, null); + } + + /// + public void GetDataAsync(string jsonParam, object userState) { + if ((this.GetDataOperationCompleted == null)) { + this.GetDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDataOperationCompleted); + } + this.InvokeAsync("GetData", new object[] { + jsonParam}, this.GetDataOperationCompleted, userState); + } + + private void OnGetDataOperationCompleted(object arg) { + if ((this.GetDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetDataCompleted(this, new GetDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddData(string jsonParam, string strJson) { + object[] results = this.Invoke("AddData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void AddDataAsync(string jsonParam, string strJson) { + this.AddDataAsync(jsonParam, strJson, null); + } + + /// + public void AddDataAsync(string jsonParam, string strJson, object userState) { + if ((this.AddDataOperationCompleted == null)) { + this.AddDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddDataOperationCompleted); + } + this.InvokeAsync("AddData", new object[] { + jsonParam, + strJson}, this.AddDataOperationCompleted, userState); + } + + private void OnAddDataOperationCompleted(object arg) { + if ((this.AddDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddDataCompleted(this, new AddDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBomVersion", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetBomVersion(string ParentPartCode, string SubPartCode) { + object[] results = this.Invoke("GetBomVersion", new object[] { + ParentPartCode, + SubPartCode}); + return ((string)(results[0])); + } + + /// + public void GetBomVersionAsync(string ParentPartCode, string SubPartCode) { + this.GetBomVersionAsync(ParentPartCode, SubPartCode, null); + } + + /// + public void GetBomVersionAsync(string ParentPartCode, string SubPartCode, object userState) { + if ((this.GetBomVersionOperationCompleted == null)) { + this.GetBomVersionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBomVersionOperationCompleted); + } + this.InvokeAsync("GetBomVersion", new object[] { + ParentPartCode, + SubPartCode}, this.GetBomVersionOperationCompleted, userState); + } + + private void OnGetBomVersionOperationCompleted(object arg) { + if ((this.GetBomVersionCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetBomVersionCompleted(this, new GetBomVersionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBomsByVer", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetBomsByVer(string parentPart, string bomVer) { + object[] results = this.Invoke("GetBomsByVer", new object[] { + parentPart, + bomVer}); + return ((string)(results[0])); + } + + /// + public void GetBomsByVerAsync(string parentPart, string bomVer) { + this.GetBomsByVerAsync(parentPart, bomVer, null); + } + + /// + public void GetBomsByVerAsync(string parentPart, string bomVer, object userState) { + if ((this.GetBomsByVerOperationCompleted == null)) { + this.GetBomsByVerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBomsByVerOperationCompleted); + } + this.InvokeAsync("GetBomsByVer", new object[] { + parentPart, + bomVer}, this.GetBomsByVerOperationCompleted, userState); + } + + private void OnGetBomsByVerOperationCompleted(object arg) { + if ((this.GetBomsByVerCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetBomsByVerCompleted(this, new GetBomsByVerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBom", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetBom(string pcode, string scode) { + object[] results = this.Invoke("GetBom", new object[] { + pcode, + scode}); + return ((string)(results[0])); + } + + /// + public void GetBomAsync(string pcode, string scode) { + this.GetBomAsync(pcode, scode, null); + } + + /// + public void GetBomAsync(string pcode, string scode, object userState) { + if ((this.GetBomOperationCompleted == null)) { + this.GetBomOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBomOperationCompleted); + } + this.InvokeAsync("GetBom", new object[] { + pcode, + scode}, this.GetBomOperationCompleted, userState); + } + + private void OnGetBomOperationCompleted(object arg) { + if ((this.GetBomCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetBomCompleted(this, new GetBomCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string UpdateData(string jsonParam, string strJson) { + object[] results = this.Invoke("UpdateData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void UpdateDataAsync(string jsonParam, string strJson) { + this.UpdateDataAsync(jsonParam, strJson, null); + } + + /// + public void UpdateDataAsync(string jsonParam, string strJson, object userState) { + if ((this.UpdateDataOperationCompleted == null)) { + this.UpdateDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateDataOperationCompleted); + } + this.InvokeAsync("UpdateData", new object[] { + jsonParam, + strJson}, this.UpdateDataOperationCompleted, userState); + } + + private void OnUpdateDataOperationCompleted(object arg) { + if ((this.UpdateDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.UpdateDataCompleted(this, new UpdateDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SaveSeqencing", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string SaveSeqencing(string strJson) { + object[] results = this.Invoke("SaveSeqencing", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void SaveSeqencingAsync(string strJson) { + this.SaveSeqencingAsync(strJson, null); + } + + /// + public void SaveSeqencingAsync(string strJson, object userState) { + if ((this.SaveSeqencingOperationCompleted == null)) { + this.SaveSeqencingOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSaveSeqencingOperationCompleted); + } + this.InvokeAsync("SaveSeqencing", new object[] { + strJson}, this.SaveSeqencingOperationCompleted, userState); + } + + private void OnSaveSeqencingOperationCompleted(object arg) { + if ((this.SaveSeqencingCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SaveSeqencingCompleted(this, new SaveSeqencingCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddMutualData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddMutualData(string jsonParam, string strJson) { + object[] results = this.Invoke("AddMutualData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void AddMutualDataAsync(string jsonParam, string strJson) { + this.AddMutualDataAsync(jsonParam, strJson, null); + } + + /// + public void AddMutualDataAsync(string jsonParam, string strJson, object userState) { + if ((this.AddMutualDataOperationCompleted == null)) { + this.AddMutualDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMutualDataOperationCompleted); + } + this.InvokeAsync("AddMutualData", new object[] { + jsonParam, + strJson}, this.AddMutualDataOperationCompleted, userState); + } + + private void OnAddMutualDataOperationCompleted(object arg) { + if ((this.AddMutualDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddMutualDataCompleted(this, new AddMutualDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ReceiveProducts", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ReceiveProducts(string jsonParam) { + object[] results = this.Invoke("ReceiveProducts", new object[] { + jsonParam}); + return ((string)(results[0])); + } + + /// + public void ReceiveProductsAsync(string jsonParam) { + this.ReceiveProductsAsync(jsonParam, null); + } + + /// + public void ReceiveProductsAsync(string jsonParam, object userState) { + if ((this.ReceiveProductsOperationCompleted == null)) { + this.ReceiveProductsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnReceiveProductsOperationCompleted); + } + this.InvokeAsync("ReceiveProducts", new object[] { + jsonParam}, this.ReceiveProductsOperationCompleted, userState); + } + + private void OnReceiveProductsOperationCompleted(object arg) { + if ((this.ReceiveProductsCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ReceiveProductsCompleted(this, new ReceiveProductsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ContainerReceive", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ContainerReceive(string strJson) { + object[] results = this.Invoke("ContainerReceive", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void ContainerReceiveAsync(string strJson) { + this.ContainerReceiveAsync(strJson, null); + } + + /// + public void ContainerReceiveAsync(string strJson, object userState) { + if ((this.ContainerReceiveOperationCompleted == null)) { + this.ContainerReceiveOperationCompleted = new System.Threading.SendOrPostCallback(this.OnContainerReceiveOperationCompleted); + } + this.InvokeAsync("ContainerReceive", new object[] { + strJson}, this.ContainerReceiveOperationCompleted, userState); + } + + private void OnContainerReceiveOperationCompleted(object arg) { + if ((this.ContainerReceiveCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ContainerReceiveCompleted(this, new ContainerReceiveCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ContainerOut", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ContainerOut(string strJson) { + object[] results = this.Invoke("ContainerOut", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void ContainerOutAsync(string strJson) { + this.ContainerOutAsync(strJson, null); + } + + /// + public void ContainerOutAsync(string strJson, object userState) { + if ((this.ContainerOutOperationCompleted == null)) { + this.ContainerOutOperationCompleted = new System.Threading.SendOrPostCallback(this.OnContainerOutOperationCompleted); + } + this.InvokeAsync("ContainerOut", new object[] { + strJson}, this.ContainerOutOperationCompleted, userState); + } + + private void OnContainerOutOperationCompleted(object arg) { + if ((this.ContainerOutCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ContainerOutCompleted(this, new ContainerOutCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CheckComesback", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string CheckComesback(string strJson) { + object[] results = this.Invoke("CheckComesback", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void CheckComesbackAsync(string strJson) { + this.CheckComesbackAsync(strJson, null); + } + + /// + public void CheckComesbackAsync(string strJson, object userState) { + if ((this.CheckComesbackOperationCompleted == null)) { + this.CheckComesbackOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckComesbackOperationCompleted); + } + this.InvokeAsync("CheckComesback", new object[] { + strJson}, this.CheckComesbackOperationCompleted, userState); + } + + private void OnCheckComesbackOperationCompleted(object arg) { + if ((this.CheckComesbackCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.CheckComesbackCompleted(this, new CheckComesbackCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CreateBillMA", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string CreateBillMA(string strJson) { + object[] results = this.Invoke("CreateBillMA", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void CreateBillMAAsync(string strJson) { + this.CreateBillMAAsync(strJson, null); + } + + /// + public void CreateBillMAAsync(string strJson, object userState) { + if ((this.CreateBillMAOperationCompleted == null)) { + this.CreateBillMAOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateBillMAOperationCompleted); + } + this.InvokeAsync("CreateBillMA", new object[] { + strJson}, this.CreateBillMAOperationCompleted, userState); + } + + private void OnCreateBillMAOperationCompleted(object arg) { + if ((this.CreateBillMACompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.CreateBillMACompleted(this, new CreateBillMACompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddMesFGFin", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddMesFGFin(string strJson) { + object[] results = this.Invoke("AddMesFGFin", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void AddMesFGFinAsync(string strJson) { + this.AddMesFGFinAsync(strJson, null); + } + + /// + public void AddMesFGFinAsync(string strJson, object userState) { + if ((this.AddMesFGFinOperationCompleted == null)) { + this.AddMesFGFinOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMesFGFinOperationCompleted); + } + this.InvokeAsync("AddMesFGFin", new object[] { + strJson}, this.AddMesFGFinOperationCompleted, userState); + } + + private void OnAddMesFGFinOperationCompleted(object arg) { + if ((this.AddMesFGFinCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddMesFGFinCompleted(this, new AddMesFGFinCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateBillState", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string UpdateBillState(string strJson) { + object[] results = this.Invoke("UpdateBillState", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void UpdateBillStateAsync(string strJson) { + this.UpdateBillStateAsync(strJson, null); + } + + /// + public void UpdateBillStateAsync(string strJson, object userState) { + if ((this.UpdateBillStateOperationCompleted == null)) { + this.UpdateBillStateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateBillStateOperationCompleted); + } + this.InvokeAsync("UpdateBillState", new object[] { + strJson}, this.UpdateBillStateOperationCompleted, userState); + } + + private void OnUpdateBillStateOperationCompleted(object arg) { + if ((this.UpdateBillStateCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.UpdateBillStateCompleted(this, new UpdateBillStateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) { + if (((url == null) + || (url == string.Empty))) { + return false; + } + System.Uri wsUri = new System.Uri(url); + if (((wsUri.Port >= 1024) + && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetVerCompletedEventHandler(object sender, GetVerCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetVerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetVerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void WriteLogCompletedEventHandler(object sender, WriteLogCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class WriteLogCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal WriteLogCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LoginCompletedEventHandler(object sender, LoginCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void NewLoginCompletedEventHandler(object sender, NewLoginCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class NewLoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal NewLoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LogoutCompletedEventHandler(object sender, LogoutCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LogoutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LogoutCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ModifyPasswordCompletedEventHandler(object sender, ModifyPasswordCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ModifyPasswordCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ModifyPasswordCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetServerTimeCompletedEventHandler(object sender, GetServerTimeCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetServerTimeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetServerTimeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public System.DateTime Result { + get { + this.RaiseExceptionIfNecessary(); + return ((System.DateTime)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void DecryptCompletedEventHandler(object sender, DecryptCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DecryptCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal DecryptCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void EncryptCompletedEventHandler(object sender, EncryptCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class EncryptCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal EncryptCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetCountCompletedEventHandler(object sender, GetCountCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetCountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetCountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public int Result { + get { + this.RaiseExceptionIfNecessary(); + return ((int)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetDataCompletedEventHandler(object sender, GetDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddDataCompletedEventHandler(object sender, AddDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetBomVersionCompletedEventHandler(object sender, GetBomVersionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetBomVersionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetBomVersionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetBomsByVerCompletedEventHandler(object sender, GetBomsByVerCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetBomsByVerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetBomsByVerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetBomCompletedEventHandler(object sender, GetBomCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetBomCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetBomCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void UpdateDataCompletedEventHandler(object sender, UpdateDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class UpdateDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal UpdateDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void SaveSeqencingCompletedEventHandler(object sender, SaveSeqencingCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class SaveSeqencingCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal SaveSeqencingCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddMutualDataCompletedEventHandler(object sender, AddMutualDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddMutualDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddMutualDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ReceiveProductsCompletedEventHandler(object sender, ReceiveProductsCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ReceiveProductsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ReceiveProductsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ContainerReceiveCompletedEventHandler(object sender, ContainerReceiveCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ContainerReceiveCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ContainerReceiveCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ContainerOutCompletedEventHandler(object sender, ContainerOutCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ContainerOutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ContainerOutCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void CheckComesbackCompletedEventHandler(object sender, CheckComesbackCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class CheckComesbackCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal CheckComesbackCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void CreateBillMACompletedEventHandler(object sender, CreateBillMACompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class CreateBillMACompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal CreateBillMACompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddMesFGFinCompletedEventHandler(object sender, AddMesFGFinCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddMesFGFinCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddMesFGFinCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void UpdateBillStateCompletedEventHandler(object sender, UpdateBillStateCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class UpdateBillStateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal UpdateBillStateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Controller/Web References/BomListcompany/Reference.map b/Controller/Web References/BomListcompany/Reference.map new file mode 100644 index 0000000..70e59f1 --- /dev/null +++ b/Controller/Web References/BomListcompany/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomVersion/JsonService.disco b/Controller/Web References/BomVersion/JsonService.disco new file mode 100644 index 0000000..b7c36dc --- /dev/null +++ b/Controller/Web References/BomVersion/JsonService.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomVersion/JsonService.wsdl b/Controller/Web References/BomVersion/JsonService.wsdl new file mode 100644 index 0000000..c2e5a6d --- /dev/null +++ b/Controller/Web References/BomVersion/JsonService.wsdl @@ -0,0 +1,1333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomVersion/Reference.cs b/Controller/Web References/BomVersion/Reference.cs new file mode 100644 index 0000000..1999923 --- /dev/null +++ b/Controller/Web References/BomVersion/Reference.cs @@ -0,0 +1,1064 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +// +// 此源代码是由 Microsoft.VSDesigner 4.0.30319.42000 版自动生成。 +// +#pragma warning disable 1591 + +namespace CK.SCP.Controller.BomVersion { + using System; + using System.Web.Services; + using System.Diagnostics; + using System.Web.Services.Protocols; + using System.Xml.Serialization; + using System.ComponentModel; + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Web.Services.WebServiceBindingAttribute(Name="JsonServiceSoap", Namespace="http://tempuri.org/")] + public partial class JsonService : System.Web.Services.Protocols.SoapHttpClientProtocol { + + private System.Threading.SendOrPostCallback GetVerOperationCompleted; + + private System.Threading.SendOrPostCallback WriteLogOperationCompleted; + + private System.Threading.SendOrPostCallback LoginOperationCompleted; + + private System.Threading.SendOrPostCallback LogoutOperationCompleted; + + private System.Threading.SendOrPostCallback ModifyPasswordOperationCompleted; + + private System.Threading.SendOrPostCallback GetServerTimeOperationCompleted; + + private System.Threading.SendOrPostCallback DecryptOperationCompleted; + + private System.Threading.SendOrPostCallback EncryptOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountOperationCompleted; + + private System.Threading.SendOrPostCallback GetDataOperationCompleted; + + private System.Threading.SendOrPostCallback AddDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetBomVersionOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateDataOperationCompleted; + + private System.Threading.SendOrPostCallback SaveSeqencingOperationCompleted; + + private System.Threading.SendOrPostCallback AddMutualDataOperationCompleted; + + private System.Threading.SendOrPostCallback ReceiveProductsOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public JsonService() { + this.Url = global::CK.SCP.Controller.Properties.Settings.Default.CK_SCP_Controller_BomVersion_JsonService; + if ((this.IsLocalFileSystemWebService(this.Url) == true)) { + this.UseDefaultCredentials = true; + this.useDefaultCredentialsSetExplicitly = false; + } + else { + this.useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url { + get { + return base.Url; + } + set { + if ((((this.IsLocalFileSystemWebService(base.Url) == true) + && (this.useDefaultCredentialsSetExplicitly == false)) + && (this.IsLocalFileSystemWebService(value) == false))) { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials { + get { + return base.UseDefaultCredentials; + } + set { + base.UseDefaultCredentials = value; + this.useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event GetVerCompletedEventHandler GetVerCompleted; + + /// + public event WriteLogCompletedEventHandler WriteLogCompleted; + + /// + public event LoginCompletedEventHandler LoginCompleted; + + /// + public event LogoutCompletedEventHandler LogoutCompleted; + + /// + public event ModifyPasswordCompletedEventHandler ModifyPasswordCompleted; + + /// + public event GetServerTimeCompletedEventHandler GetServerTimeCompleted; + + /// + public event DecryptCompletedEventHandler DecryptCompleted; + + /// + public event EncryptCompletedEventHandler EncryptCompleted; + + /// + public event GetCountCompletedEventHandler GetCountCompleted; + + /// + public event GetDataCompletedEventHandler GetDataCompleted; + + /// + public event AddDataCompletedEventHandler AddDataCompleted; + + /// + public event GetBomVersionCompletedEventHandler GetBomVersionCompleted; + + /// + public event UpdateDataCompletedEventHandler UpdateDataCompleted; + + /// + public event SaveSeqencingCompletedEventHandler SaveSeqencingCompleted; + + /// + public event AddMutualDataCompletedEventHandler AddMutualDataCompleted; + + /// + public event ReceiveProductsCompletedEventHandler ReceiveProductsCompleted; + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetVer", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetVer() { + object[] results = this.Invoke("GetVer", new object[0]); + return ((string)(results[0])); + } + + /// + public void GetVerAsync() { + this.GetVerAsync(null); + } + + /// + public void GetVerAsync(object userState) { + if ((this.GetVerOperationCompleted == null)) { + this.GetVerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetVerOperationCompleted); + } + this.InvokeAsync("GetVer", new object[0], this.GetVerOperationCompleted, userState); + } + + private void OnGetVerOperationCompleted(object arg) { + if ((this.GetVerCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetVerCompleted(this, new GetVerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/WriteLog", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string WriteLog(string operCode, string function, string message) { + object[] results = this.Invoke("WriteLog", new object[] { + operCode, + function, + message}); + return ((string)(results[0])); + } + + /// + public void WriteLogAsync(string operCode, string function, string message) { + this.WriteLogAsync(operCode, function, message, null); + } + + /// + public void WriteLogAsync(string operCode, string function, string message, object userState) { + if ((this.WriteLogOperationCompleted == null)) { + this.WriteLogOperationCompleted = new System.Threading.SendOrPostCallback(this.OnWriteLogOperationCompleted); + } + this.InvokeAsync("WriteLog", new object[] { + operCode, + function, + message}, this.WriteLogOperationCompleted, userState); + } + + private void OnWriteLogOperationCompleted(object arg) { + if ((this.WriteLogCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.WriteLogCompleted(this, new WriteLogCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Login", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Login(string operCode, string password) { + object[] results = this.Invoke("Login", new object[] { + operCode, + password}); + return ((string)(results[0])); + } + + /// + public void LoginAsync(string operCode, string password) { + this.LoginAsync(operCode, password, null); + } + + /// + public void LoginAsync(string operCode, string password, object userState) { + if ((this.LoginOperationCompleted == null)) { + this.LoginOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLoginOperationCompleted); + } + this.InvokeAsync("Login", new object[] { + operCode, + password}, this.LoginOperationCompleted, userState); + } + + private void OnLoginOperationCompleted(object arg) { + if ((this.LoginCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LoginCompleted(this, new LoginCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Logout", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Logout(string operCode) { + object[] results = this.Invoke("Logout", new object[] { + operCode}); + return ((string)(results[0])); + } + + /// + public void LogoutAsync(string operCode) { + this.LogoutAsync(operCode, null); + } + + /// + public void LogoutAsync(string operCode, object userState) { + if ((this.LogoutOperationCompleted == null)) { + this.LogoutOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLogoutOperationCompleted); + } + this.InvokeAsync("Logout", new object[] { + operCode}, this.LogoutOperationCompleted, userState); + } + + private void OnLogoutOperationCompleted(object arg) { + if ((this.LogoutCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LogoutCompleted(this, new LogoutCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ModifyPassword", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ModifyPassword(string operCode, string oldPass, string newPass) { + object[] results = this.Invoke("ModifyPassword", new object[] { + operCode, + oldPass, + newPass}); + return ((string)(results[0])); + } + + /// + public void ModifyPasswordAsync(string operCode, string oldPass, string newPass) { + this.ModifyPasswordAsync(operCode, oldPass, newPass, null); + } + + /// + public void ModifyPasswordAsync(string operCode, string oldPass, string newPass, object userState) { + if ((this.ModifyPasswordOperationCompleted == null)) { + this.ModifyPasswordOperationCompleted = new System.Threading.SendOrPostCallback(this.OnModifyPasswordOperationCompleted); + } + this.InvokeAsync("ModifyPassword", new object[] { + operCode, + oldPass, + newPass}, this.ModifyPasswordOperationCompleted, userState); + } + + private void OnModifyPasswordOperationCompleted(object arg) { + if ((this.ModifyPasswordCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ModifyPasswordCompleted(this, new ModifyPasswordCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetServerTime", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public System.DateTime GetServerTime() { + object[] results = this.Invoke("GetServerTime", new object[0]); + return ((System.DateTime)(results[0])); + } + + /// + public void GetServerTimeAsync() { + this.GetServerTimeAsync(null); + } + + /// + public void GetServerTimeAsync(object userState) { + if ((this.GetServerTimeOperationCompleted == null)) { + this.GetServerTimeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetServerTimeOperationCompleted); + } + this.InvokeAsync("GetServerTime", new object[0], this.GetServerTimeOperationCompleted, userState); + } + + private void OnGetServerTimeOperationCompleted(object arg) { + if ((this.GetServerTimeCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetServerTimeCompleted(this, new GetServerTimeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Decrypt", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Decrypt(string str) { + object[] results = this.Invoke("Decrypt", new object[] { + str}); + return ((string)(results[0])); + } + + /// + public void DecryptAsync(string str) { + this.DecryptAsync(str, null); + } + + /// + public void DecryptAsync(string str, object userState) { + if ((this.DecryptOperationCompleted == null)) { + this.DecryptOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDecryptOperationCompleted); + } + this.InvokeAsync("Decrypt", new object[] { + str}, this.DecryptOperationCompleted, userState); + } + + private void OnDecryptOperationCompleted(object arg) { + if ((this.DecryptCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.DecryptCompleted(this, new DecryptCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Encrypt", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Encrypt(string str) { + object[] results = this.Invoke("Encrypt", new object[] { + str}); + return ((string)(results[0])); + } + + /// + public void EncryptAsync(string str) { + this.EncryptAsync(str, null); + } + + /// + public void EncryptAsync(string str, object userState) { + if ((this.EncryptOperationCompleted == null)) { + this.EncryptOperationCompleted = new System.Threading.SendOrPostCallback(this.OnEncryptOperationCompleted); + } + this.InvokeAsync("Encrypt", new object[] { + str}, this.EncryptOperationCompleted, userState); + } + + private void OnEncryptOperationCompleted(object arg) { + if ((this.EncryptCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.EncryptCompleted(this, new EncryptCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCount", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public int GetCount(string jsonParam) { + object[] results = this.Invoke("GetCount", new object[] { + jsonParam}); + return ((int)(results[0])); + } + + /// + public void GetCountAsync(string jsonParam) { + this.GetCountAsync(jsonParam, null); + } + + /// + public void GetCountAsync(string jsonParam, object userState) { + if ((this.GetCountOperationCompleted == null)) { + this.GetCountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCountOperationCompleted); + } + this.InvokeAsync("GetCount", new object[] { + jsonParam}, this.GetCountOperationCompleted, userState); + } + + private void OnGetCountOperationCompleted(object arg) { + if ((this.GetCountCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetCountCompleted(this, new GetCountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetData(string jsonParam) { + object[] results = this.Invoke("GetData", new object[] { + jsonParam}); + return ((string)(results[0])); + } + + /// + public void GetDataAsync(string jsonParam) { + this.GetDataAsync(jsonParam, null); + } + + /// + public void GetDataAsync(string jsonParam, object userState) { + if ((this.GetDataOperationCompleted == null)) { + this.GetDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDataOperationCompleted); + } + this.InvokeAsync("GetData", new object[] { + jsonParam}, this.GetDataOperationCompleted, userState); + } + + private void OnGetDataOperationCompleted(object arg) { + if ((this.GetDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetDataCompleted(this, new GetDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddData(string jsonParam, string strJson) { + object[] results = this.Invoke("AddData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void AddDataAsync(string jsonParam, string strJson) { + this.AddDataAsync(jsonParam, strJson, null); + } + + /// + public void AddDataAsync(string jsonParam, string strJson, object userState) { + if ((this.AddDataOperationCompleted == null)) { + this.AddDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddDataOperationCompleted); + } + this.InvokeAsync("AddData", new object[] { + jsonParam, + strJson}, this.AddDataOperationCompleted, userState); + } + + private void OnAddDataOperationCompleted(object arg) { + if ((this.AddDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddDataCompleted(this, new AddDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBomVersion", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetBomVersion(string ParentPartCode, string SubPartCode) { + object[] results = this.Invoke("GetBomVersion", new object[] { + ParentPartCode, + SubPartCode}); + return ((string)(results[0])); + } + + /// + public void GetBomVersionAsync(string ParentPartCode, string SubPartCode) { + this.GetBomVersionAsync(ParentPartCode, SubPartCode, null); + } + + /// + public void GetBomVersionAsync(string ParentPartCode, string SubPartCode, object userState) { + if ((this.GetBomVersionOperationCompleted == null)) { + this.GetBomVersionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBomVersionOperationCompleted); + } + this.InvokeAsync("GetBomVersion", new object[] { + ParentPartCode, + SubPartCode}, this.GetBomVersionOperationCompleted, userState); + } + + private void OnGetBomVersionOperationCompleted(object arg) { + if ((this.GetBomVersionCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetBomVersionCompleted(this, new GetBomVersionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string UpdateData(string jsonParam, string strJson) { + object[] results = this.Invoke("UpdateData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void UpdateDataAsync(string jsonParam, string strJson) { + this.UpdateDataAsync(jsonParam, strJson, null); + } + + /// + public void UpdateDataAsync(string jsonParam, string strJson, object userState) { + if ((this.UpdateDataOperationCompleted == null)) { + this.UpdateDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateDataOperationCompleted); + } + this.InvokeAsync("UpdateData", new object[] { + jsonParam, + strJson}, this.UpdateDataOperationCompleted, userState); + } + + private void OnUpdateDataOperationCompleted(object arg) { + if ((this.UpdateDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.UpdateDataCompleted(this, new UpdateDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SaveSeqencing", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string SaveSeqencing(string strJson) { + object[] results = this.Invoke("SaveSeqencing", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void SaveSeqencingAsync(string strJson) { + this.SaveSeqencingAsync(strJson, null); + } + + /// + public void SaveSeqencingAsync(string strJson, object userState) { + if ((this.SaveSeqencingOperationCompleted == null)) { + this.SaveSeqencingOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSaveSeqencingOperationCompleted); + } + this.InvokeAsync("SaveSeqencing", new object[] { + strJson}, this.SaveSeqencingOperationCompleted, userState); + } + + private void OnSaveSeqencingOperationCompleted(object arg) { + if ((this.SaveSeqencingCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SaveSeqencingCompleted(this, new SaveSeqencingCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddMutualData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddMutualData(string jsonParam, string strJson) { + object[] results = this.Invoke("AddMutualData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void AddMutualDataAsync(string jsonParam, string strJson) { + this.AddMutualDataAsync(jsonParam, strJson, null); + } + + /// + public void AddMutualDataAsync(string jsonParam, string strJson, object userState) { + if ((this.AddMutualDataOperationCompleted == null)) { + this.AddMutualDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMutualDataOperationCompleted); + } + this.InvokeAsync("AddMutualData", new object[] { + jsonParam, + strJson}, this.AddMutualDataOperationCompleted, userState); + } + + private void OnAddMutualDataOperationCompleted(object arg) { + if ((this.AddMutualDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddMutualDataCompleted(this, new AddMutualDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ReceiveProducts", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ReceiveProducts(string jsonParam) { + object[] results = this.Invoke("ReceiveProducts", new object[] { + jsonParam}); + return ((string)(results[0])); + } + + /// + public void ReceiveProductsAsync(string jsonParam) { + this.ReceiveProductsAsync(jsonParam, null); + } + + /// + public void ReceiveProductsAsync(string jsonParam, object userState) { + if ((this.ReceiveProductsOperationCompleted == null)) { + this.ReceiveProductsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnReceiveProductsOperationCompleted); + } + this.InvokeAsync("ReceiveProducts", new object[] { + jsonParam}, this.ReceiveProductsOperationCompleted, userState); + } + + private void OnReceiveProductsOperationCompleted(object arg) { + if ((this.ReceiveProductsCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ReceiveProductsCompleted(this, new ReceiveProductsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) { + if (((url == null) + || (url == string.Empty))) { + return false; + } + System.Uri wsUri = new System.Uri(url); + if (((wsUri.Port >= 1024) + && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetVerCompletedEventHandler(object sender, GetVerCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetVerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetVerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void WriteLogCompletedEventHandler(object sender, WriteLogCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class WriteLogCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal WriteLogCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LoginCompletedEventHandler(object sender, LoginCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LogoutCompletedEventHandler(object sender, LogoutCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LogoutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LogoutCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ModifyPasswordCompletedEventHandler(object sender, ModifyPasswordCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ModifyPasswordCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ModifyPasswordCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetServerTimeCompletedEventHandler(object sender, GetServerTimeCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetServerTimeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetServerTimeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public System.DateTime Result { + get { + this.RaiseExceptionIfNecessary(); + return ((System.DateTime)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void DecryptCompletedEventHandler(object sender, DecryptCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DecryptCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal DecryptCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void EncryptCompletedEventHandler(object sender, EncryptCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class EncryptCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal EncryptCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetCountCompletedEventHandler(object sender, GetCountCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetCountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetCountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public int Result { + get { + this.RaiseExceptionIfNecessary(); + return ((int)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetDataCompletedEventHandler(object sender, GetDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddDataCompletedEventHandler(object sender, AddDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetBomVersionCompletedEventHandler(object sender, GetBomVersionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetBomVersionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetBomVersionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void UpdateDataCompletedEventHandler(object sender, UpdateDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class UpdateDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal UpdateDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void SaveSeqencingCompletedEventHandler(object sender, SaveSeqencingCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class SaveSeqencingCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal SaveSeqencingCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddMutualDataCompletedEventHandler(object sender, AddMutualDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddMutualDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddMutualDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ReceiveProductsCompletedEventHandler(object sender, ReceiveProductsCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ReceiveProductsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ReceiveProductsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Controller/Web References/BomVersion/Reference.map b/Controller/Web References/BomVersion/Reference.map new file mode 100644 index 0000000..169d3db --- /dev/null +++ b/Controller/Web References/BomVersion/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomVersion1/JsonService.disco b/Controller/Web References/BomVersion1/JsonService.disco new file mode 100644 index 0000000..9e8e3a5 --- /dev/null +++ b/Controller/Web References/BomVersion1/JsonService.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomVersion1/JsonService.wsdl b/Controller/Web References/BomVersion1/JsonService.wsdl new file mode 100644 index 0000000..ee8f7fb --- /dev/null +++ b/Controller/Web References/BomVersion1/JsonService.wsdl @@ -0,0 +1,1816 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Controller/Web References/BomVersion1/Reference.cs b/Controller/Web References/BomVersion1/Reference.cs new file mode 100644 index 0000000..220393c --- /dev/null +++ b/Controller/Web References/BomVersion1/Reference.cs @@ -0,0 +1,1426 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +// +// 此源代码是由 Microsoft.VSDesigner 4.0.30319.42000 版自动生成。 +// +#pragma warning disable 1591 + +namespace CK.SCP.Controller.BomVersion1 { + using System; + using System.Web.Services; + using System.Diagnostics; + using System.Web.Services.Protocols; + using System.Xml.Serialization; + using System.ComponentModel; + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Web.Services.WebServiceBindingAttribute(Name="JsonServiceSoap", Namespace="http://tempuri.org/")] + public partial class JsonService : System.Web.Services.Protocols.SoapHttpClientProtocol { + + private System.Threading.SendOrPostCallback GetVerOperationCompleted; + + private System.Threading.SendOrPostCallback WriteLogOperationCompleted; + + private System.Threading.SendOrPostCallback LoginOperationCompleted; + + private System.Threading.SendOrPostCallback NewLoginOperationCompleted; + + private System.Threading.SendOrPostCallback LogoutOperationCompleted; + + private System.Threading.SendOrPostCallback ModifyPasswordOperationCompleted; + + private System.Threading.SendOrPostCallback GetServerTimeOperationCompleted; + + private System.Threading.SendOrPostCallback DecryptOperationCompleted; + + private System.Threading.SendOrPostCallback EncryptOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountOperationCompleted; + + private System.Threading.SendOrPostCallback GetDataOperationCompleted; + + private System.Threading.SendOrPostCallback AddDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetBomVersionOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateDataOperationCompleted; + + private System.Threading.SendOrPostCallback SaveSeqencingOperationCompleted; + + private System.Threading.SendOrPostCallback AddMutualDataOperationCompleted; + + private System.Threading.SendOrPostCallback ReceiveProductsOperationCompleted; + + private System.Threading.SendOrPostCallback ContainerReceiveOperationCompleted; + + private System.Threading.SendOrPostCallback ContainerOutOperationCompleted; + + private System.Threading.SendOrPostCallback CheckComesbackOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBillMAOperationCompleted; + + private System.Threading.SendOrPostCallback AddMesFGFinOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public JsonService() { + this.Url = global::CK.SCP.Controller.Properties.Settings.Default.CK_SCP_Controller_BomVersion1_JsonService; + if ((this.IsLocalFileSystemWebService(this.Url) == true)) { + this.UseDefaultCredentials = true; + this.useDefaultCredentialsSetExplicitly = false; + } + else { + this.useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url { + get { + return base.Url; + } + set { + if ((((this.IsLocalFileSystemWebService(base.Url) == true) + && (this.useDefaultCredentialsSetExplicitly == false)) + && (this.IsLocalFileSystemWebService(value) == false))) { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials { + get { + return base.UseDefaultCredentials; + } + set { + base.UseDefaultCredentials = value; + this.useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event GetVerCompletedEventHandler GetVerCompleted; + + /// + public event WriteLogCompletedEventHandler WriteLogCompleted; + + /// + public event LoginCompletedEventHandler LoginCompleted; + + /// + public event NewLoginCompletedEventHandler NewLoginCompleted; + + /// + public event LogoutCompletedEventHandler LogoutCompleted; + + /// + public event ModifyPasswordCompletedEventHandler ModifyPasswordCompleted; + + /// + public event GetServerTimeCompletedEventHandler GetServerTimeCompleted; + + /// + public event DecryptCompletedEventHandler DecryptCompleted; + + /// + public event EncryptCompletedEventHandler EncryptCompleted; + + /// + public event GetCountCompletedEventHandler GetCountCompleted; + + /// + public event GetDataCompletedEventHandler GetDataCompleted; + + /// + public event AddDataCompletedEventHandler AddDataCompleted; + + /// + public event GetBomVersionCompletedEventHandler GetBomVersionCompleted; + + /// + public event UpdateDataCompletedEventHandler UpdateDataCompleted; + + /// + public event SaveSeqencingCompletedEventHandler SaveSeqencingCompleted; + + /// + public event AddMutualDataCompletedEventHandler AddMutualDataCompleted; + + /// + public event ReceiveProductsCompletedEventHandler ReceiveProductsCompleted; + + /// + public event ContainerReceiveCompletedEventHandler ContainerReceiveCompleted; + + /// + public event ContainerOutCompletedEventHandler ContainerOutCompleted; + + /// + public event CheckComesbackCompletedEventHandler CheckComesbackCompleted; + + /// + public event CreateBillMACompletedEventHandler CreateBillMACompleted; + + /// + public event AddMesFGFinCompletedEventHandler AddMesFGFinCompleted; + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetVer", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetVer() { + object[] results = this.Invoke("GetVer", new object[0]); + return ((string)(results[0])); + } + + /// + public void GetVerAsync() { + this.GetVerAsync(null); + } + + /// + public void GetVerAsync(object userState) { + if ((this.GetVerOperationCompleted == null)) { + this.GetVerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetVerOperationCompleted); + } + this.InvokeAsync("GetVer", new object[0], this.GetVerOperationCompleted, userState); + } + + private void OnGetVerOperationCompleted(object arg) { + if ((this.GetVerCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetVerCompleted(this, new GetVerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/WriteLog", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string WriteLog(string operCode, string function, string message) { + object[] results = this.Invoke("WriteLog", new object[] { + operCode, + function, + message}); + return ((string)(results[0])); + } + + /// + public void WriteLogAsync(string operCode, string function, string message) { + this.WriteLogAsync(operCode, function, message, null); + } + + /// + public void WriteLogAsync(string operCode, string function, string message, object userState) { + if ((this.WriteLogOperationCompleted == null)) { + this.WriteLogOperationCompleted = new System.Threading.SendOrPostCallback(this.OnWriteLogOperationCompleted); + } + this.InvokeAsync("WriteLog", new object[] { + operCode, + function, + message}, this.WriteLogOperationCompleted, userState); + } + + private void OnWriteLogOperationCompleted(object arg) { + if ((this.WriteLogCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.WriteLogCompleted(this, new WriteLogCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Login", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Login(string operCode, string password) { + object[] results = this.Invoke("Login", new object[] { + operCode, + password}); + return ((string)(results[0])); + } + + /// + public void LoginAsync(string operCode, string password) { + this.LoginAsync(operCode, password, null); + } + + /// + public void LoginAsync(string operCode, string password, object userState) { + if ((this.LoginOperationCompleted == null)) { + this.LoginOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLoginOperationCompleted); + } + this.InvokeAsync("Login", new object[] { + operCode, + password}, this.LoginOperationCompleted, userState); + } + + private void OnLoginOperationCompleted(object arg) { + if ((this.LoginCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LoginCompleted(this, new LoginCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/NewLogin", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string NewLogin(string operCode, string password) { + object[] results = this.Invoke("NewLogin", new object[] { + operCode, + password}); + return ((string)(results[0])); + } + + /// + public void NewLoginAsync(string operCode, string password) { + this.NewLoginAsync(operCode, password, null); + } + + /// + public void NewLoginAsync(string operCode, string password, object userState) { + if ((this.NewLoginOperationCompleted == null)) { + this.NewLoginOperationCompleted = new System.Threading.SendOrPostCallback(this.OnNewLoginOperationCompleted); + } + this.InvokeAsync("NewLogin", new object[] { + operCode, + password}, this.NewLoginOperationCompleted, userState); + } + + private void OnNewLoginOperationCompleted(object arg) { + if ((this.NewLoginCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.NewLoginCompleted(this, new NewLoginCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Logout", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Logout(string operCode) { + object[] results = this.Invoke("Logout", new object[] { + operCode}); + return ((string)(results[0])); + } + + /// + public void LogoutAsync(string operCode) { + this.LogoutAsync(operCode, null); + } + + /// + public void LogoutAsync(string operCode, object userState) { + if ((this.LogoutOperationCompleted == null)) { + this.LogoutOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLogoutOperationCompleted); + } + this.InvokeAsync("Logout", new object[] { + operCode}, this.LogoutOperationCompleted, userState); + } + + private void OnLogoutOperationCompleted(object arg) { + if ((this.LogoutCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.LogoutCompleted(this, new LogoutCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ModifyPassword", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ModifyPassword(string operCode, string oldPass, string newPass) { + object[] results = this.Invoke("ModifyPassword", new object[] { + operCode, + oldPass, + newPass}); + return ((string)(results[0])); + } + + /// + public void ModifyPasswordAsync(string operCode, string oldPass, string newPass) { + this.ModifyPasswordAsync(operCode, oldPass, newPass, null); + } + + /// + public void ModifyPasswordAsync(string operCode, string oldPass, string newPass, object userState) { + if ((this.ModifyPasswordOperationCompleted == null)) { + this.ModifyPasswordOperationCompleted = new System.Threading.SendOrPostCallback(this.OnModifyPasswordOperationCompleted); + } + this.InvokeAsync("ModifyPassword", new object[] { + operCode, + oldPass, + newPass}, this.ModifyPasswordOperationCompleted, userState); + } + + private void OnModifyPasswordOperationCompleted(object arg) { + if ((this.ModifyPasswordCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ModifyPasswordCompleted(this, new ModifyPasswordCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetServerTime", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public System.DateTime GetServerTime() { + object[] results = this.Invoke("GetServerTime", new object[0]); + return ((System.DateTime)(results[0])); + } + + /// + public void GetServerTimeAsync() { + this.GetServerTimeAsync(null); + } + + /// + public void GetServerTimeAsync(object userState) { + if ((this.GetServerTimeOperationCompleted == null)) { + this.GetServerTimeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetServerTimeOperationCompleted); + } + this.InvokeAsync("GetServerTime", new object[0], this.GetServerTimeOperationCompleted, userState); + } + + private void OnGetServerTimeOperationCompleted(object arg) { + if ((this.GetServerTimeCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetServerTimeCompleted(this, new GetServerTimeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Decrypt", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Decrypt(string str) { + object[] results = this.Invoke("Decrypt", new object[] { + str}); + return ((string)(results[0])); + } + + /// + public void DecryptAsync(string str) { + this.DecryptAsync(str, null); + } + + /// + public void DecryptAsync(string str, object userState) { + if ((this.DecryptOperationCompleted == null)) { + this.DecryptOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDecryptOperationCompleted); + } + this.InvokeAsync("Decrypt", new object[] { + str}, this.DecryptOperationCompleted, userState); + } + + private void OnDecryptOperationCompleted(object arg) { + if ((this.DecryptCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.DecryptCompleted(this, new DecryptCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Encrypt", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string Encrypt(string str) { + object[] results = this.Invoke("Encrypt", new object[] { + str}); + return ((string)(results[0])); + } + + /// + public void EncryptAsync(string str) { + this.EncryptAsync(str, null); + } + + /// + public void EncryptAsync(string str, object userState) { + if ((this.EncryptOperationCompleted == null)) { + this.EncryptOperationCompleted = new System.Threading.SendOrPostCallback(this.OnEncryptOperationCompleted); + } + this.InvokeAsync("Encrypt", new object[] { + str}, this.EncryptOperationCompleted, userState); + } + + private void OnEncryptOperationCompleted(object arg) { + if ((this.EncryptCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.EncryptCompleted(this, new EncryptCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCount", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public int GetCount(string jsonParam) { + object[] results = this.Invoke("GetCount", new object[] { + jsonParam}); + return ((int)(results[0])); + } + + /// + public void GetCountAsync(string jsonParam) { + this.GetCountAsync(jsonParam, null); + } + + /// + public void GetCountAsync(string jsonParam, object userState) { + if ((this.GetCountOperationCompleted == null)) { + this.GetCountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCountOperationCompleted); + } + this.InvokeAsync("GetCount", new object[] { + jsonParam}, this.GetCountOperationCompleted, userState); + } + + private void OnGetCountOperationCompleted(object arg) { + if ((this.GetCountCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetCountCompleted(this, new GetCountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetData(string jsonParam) { + object[] results = this.Invoke("GetData", new object[] { + jsonParam}); + return ((string)(results[0])); + } + + /// + public void GetDataAsync(string jsonParam) { + this.GetDataAsync(jsonParam, null); + } + + /// + public void GetDataAsync(string jsonParam, object userState) { + if ((this.GetDataOperationCompleted == null)) { + this.GetDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDataOperationCompleted); + } + this.InvokeAsync("GetData", new object[] { + jsonParam}, this.GetDataOperationCompleted, userState); + } + + private void OnGetDataOperationCompleted(object arg) { + if ((this.GetDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetDataCompleted(this, new GetDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddData(string jsonParam, string strJson) { + object[] results = this.Invoke("AddData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void AddDataAsync(string jsonParam, string strJson) { + this.AddDataAsync(jsonParam, strJson, null); + } + + /// + public void AddDataAsync(string jsonParam, string strJson, object userState) { + if ((this.AddDataOperationCompleted == null)) { + this.AddDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddDataOperationCompleted); + } + this.InvokeAsync("AddData", new object[] { + jsonParam, + strJson}, this.AddDataOperationCompleted, userState); + } + + private void OnAddDataOperationCompleted(object arg) { + if ((this.AddDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddDataCompleted(this, new AddDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBomVersion", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetBomVersion(string ParentPartCode, string SubPartCode) { + object[] results = this.Invoke("GetBomVersion", new object[] { + ParentPartCode, + SubPartCode}); + return ((string)(results[0])); + } + + /// + public void GetBomVersionAsync(string ParentPartCode, string SubPartCode) { + this.GetBomVersionAsync(ParentPartCode, SubPartCode, null); + } + + /// + public void GetBomVersionAsync(string ParentPartCode, string SubPartCode, object userState) { + if ((this.GetBomVersionOperationCompleted == null)) { + this.GetBomVersionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBomVersionOperationCompleted); + } + this.InvokeAsync("GetBomVersion", new object[] { + ParentPartCode, + SubPartCode}, this.GetBomVersionOperationCompleted, userState); + } + + private void OnGetBomVersionOperationCompleted(object arg) { + if ((this.GetBomVersionCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetBomVersionCompleted(this, new GetBomVersionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string UpdateData(string jsonParam, string strJson) { + object[] results = this.Invoke("UpdateData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void UpdateDataAsync(string jsonParam, string strJson) { + this.UpdateDataAsync(jsonParam, strJson, null); + } + + /// + public void UpdateDataAsync(string jsonParam, string strJson, object userState) { + if ((this.UpdateDataOperationCompleted == null)) { + this.UpdateDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateDataOperationCompleted); + } + this.InvokeAsync("UpdateData", new object[] { + jsonParam, + strJson}, this.UpdateDataOperationCompleted, userState); + } + + private void OnUpdateDataOperationCompleted(object arg) { + if ((this.UpdateDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.UpdateDataCompleted(this, new UpdateDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SaveSeqencing", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string SaveSeqencing(string strJson) { + object[] results = this.Invoke("SaveSeqencing", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void SaveSeqencingAsync(string strJson) { + this.SaveSeqencingAsync(strJson, null); + } + + /// + public void SaveSeqencingAsync(string strJson, object userState) { + if ((this.SaveSeqencingOperationCompleted == null)) { + this.SaveSeqencingOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSaveSeqencingOperationCompleted); + } + this.InvokeAsync("SaveSeqencing", new object[] { + strJson}, this.SaveSeqencingOperationCompleted, userState); + } + + private void OnSaveSeqencingOperationCompleted(object arg) { + if ((this.SaveSeqencingCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SaveSeqencingCompleted(this, new SaveSeqencingCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddMutualData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddMutualData(string jsonParam, string strJson) { + object[] results = this.Invoke("AddMutualData", new object[] { + jsonParam, + strJson}); + return ((string)(results[0])); + } + + /// + public void AddMutualDataAsync(string jsonParam, string strJson) { + this.AddMutualDataAsync(jsonParam, strJson, null); + } + + /// + public void AddMutualDataAsync(string jsonParam, string strJson, object userState) { + if ((this.AddMutualDataOperationCompleted == null)) { + this.AddMutualDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMutualDataOperationCompleted); + } + this.InvokeAsync("AddMutualData", new object[] { + jsonParam, + strJson}, this.AddMutualDataOperationCompleted, userState); + } + + private void OnAddMutualDataOperationCompleted(object arg) { + if ((this.AddMutualDataCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddMutualDataCompleted(this, new AddMutualDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ReceiveProducts", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ReceiveProducts(string jsonParam) { + object[] results = this.Invoke("ReceiveProducts", new object[] { + jsonParam}); + return ((string)(results[0])); + } + + /// + public void ReceiveProductsAsync(string jsonParam) { + this.ReceiveProductsAsync(jsonParam, null); + } + + /// + public void ReceiveProductsAsync(string jsonParam, object userState) { + if ((this.ReceiveProductsOperationCompleted == null)) { + this.ReceiveProductsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnReceiveProductsOperationCompleted); + } + this.InvokeAsync("ReceiveProducts", new object[] { + jsonParam}, this.ReceiveProductsOperationCompleted, userState); + } + + private void OnReceiveProductsOperationCompleted(object arg) { + if ((this.ReceiveProductsCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ReceiveProductsCompleted(this, new ReceiveProductsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ContainerReceive", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ContainerReceive(string strJson) { + object[] results = this.Invoke("ContainerReceive", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void ContainerReceiveAsync(string strJson) { + this.ContainerReceiveAsync(strJson, null); + } + + /// + public void ContainerReceiveAsync(string strJson, object userState) { + if ((this.ContainerReceiveOperationCompleted == null)) { + this.ContainerReceiveOperationCompleted = new System.Threading.SendOrPostCallback(this.OnContainerReceiveOperationCompleted); + } + this.InvokeAsync("ContainerReceive", new object[] { + strJson}, this.ContainerReceiveOperationCompleted, userState); + } + + private void OnContainerReceiveOperationCompleted(object arg) { + if ((this.ContainerReceiveCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ContainerReceiveCompleted(this, new ContainerReceiveCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ContainerOut", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string ContainerOut(string strJson) { + object[] results = this.Invoke("ContainerOut", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void ContainerOutAsync(string strJson) { + this.ContainerOutAsync(strJson, null); + } + + /// + public void ContainerOutAsync(string strJson, object userState) { + if ((this.ContainerOutOperationCompleted == null)) { + this.ContainerOutOperationCompleted = new System.Threading.SendOrPostCallback(this.OnContainerOutOperationCompleted); + } + this.InvokeAsync("ContainerOut", new object[] { + strJson}, this.ContainerOutOperationCompleted, userState); + } + + private void OnContainerOutOperationCompleted(object arg) { + if ((this.ContainerOutCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.ContainerOutCompleted(this, new ContainerOutCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CheckComesback", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string CheckComesback(string strJson) { + object[] results = this.Invoke("CheckComesback", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void CheckComesbackAsync(string strJson) { + this.CheckComesbackAsync(strJson, null); + } + + /// + public void CheckComesbackAsync(string strJson, object userState) { + if ((this.CheckComesbackOperationCompleted == null)) { + this.CheckComesbackOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckComesbackOperationCompleted); + } + this.InvokeAsync("CheckComesback", new object[] { + strJson}, this.CheckComesbackOperationCompleted, userState); + } + + private void OnCheckComesbackOperationCompleted(object arg) { + if ((this.CheckComesbackCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.CheckComesbackCompleted(this, new CheckComesbackCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CreateBillMA", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string CreateBillMA(string strJson) { + object[] results = this.Invoke("CreateBillMA", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void CreateBillMAAsync(string strJson) { + this.CreateBillMAAsync(strJson, null); + } + + /// + public void CreateBillMAAsync(string strJson, object userState) { + if ((this.CreateBillMAOperationCompleted == null)) { + this.CreateBillMAOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateBillMAOperationCompleted); + } + this.InvokeAsync("CreateBillMA", new object[] { + strJson}, this.CreateBillMAOperationCompleted, userState); + } + + private void OnCreateBillMAOperationCompleted(object arg) { + if ((this.CreateBillMACompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.CreateBillMACompleted(this, new CreateBillMACompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddMesFGFin", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string AddMesFGFin(string strJson) { + object[] results = this.Invoke("AddMesFGFin", new object[] { + strJson}); + return ((string)(results[0])); + } + + /// + public void AddMesFGFinAsync(string strJson) { + this.AddMesFGFinAsync(strJson, null); + } + + /// + public void AddMesFGFinAsync(string strJson, object userState) { + if ((this.AddMesFGFinOperationCompleted == null)) { + this.AddMesFGFinOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMesFGFinOperationCompleted); + } + this.InvokeAsync("AddMesFGFin", new object[] { + strJson}, this.AddMesFGFinOperationCompleted, userState); + } + + private void OnAddMesFGFinOperationCompleted(object arg) { + if ((this.AddMesFGFinCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.AddMesFGFinCompleted(this, new AddMesFGFinCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) { + if (((url == null) + || (url == string.Empty))) { + return false; + } + System.Uri wsUri = new System.Uri(url); + if (((wsUri.Port >= 1024) + && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetVerCompletedEventHandler(object sender, GetVerCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetVerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetVerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void WriteLogCompletedEventHandler(object sender, WriteLogCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class WriteLogCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal WriteLogCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LoginCompletedEventHandler(object sender, LoginCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void NewLoginCompletedEventHandler(object sender, NewLoginCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class NewLoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal NewLoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void LogoutCompletedEventHandler(object sender, LogoutCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class LogoutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal LogoutCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ModifyPasswordCompletedEventHandler(object sender, ModifyPasswordCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ModifyPasswordCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ModifyPasswordCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetServerTimeCompletedEventHandler(object sender, GetServerTimeCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetServerTimeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetServerTimeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public System.DateTime Result { + get { + this.RaiseExceptionIfNecessary(); + return ((System.DateTime)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void DecryptCompletedEventHandler(object sender, DecryptCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class DecryptCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal DecryptCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void EncryptCompletedEventHandler(object sender, EncryptCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class EncryptCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal EncryptCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetCountCompletedEventHandler(object sender, GetCountCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetCountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetCountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public int Result { + get { + this.RaiseExceptionIfNecessary(); + return ((int)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetDataCompletedEventHandler(object sender, GetDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddDataCompletedEventHandler(object sender, AddDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void GetBomVersionCompletedEventHandler(object sender, GetBomVersionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetBomVersionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetBomVersionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void UpdateDataCompletedEventHandler(object sender, UpdateDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class UpdateDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal UpdateDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void SaveSeqencingCompletedEventHandler(object sender, SaveSeqencingCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class SaveSeqencingCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal SaveSeqencingCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddMutualDataCompletedEventHandler(object sender, AddMutualDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddMutualDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddMutualDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ReceiveProductsCompletedEventHandler(object sender, ReceiveProductsCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ReceiveProductsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ReceiveProductsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ContainerReceiveCompletedEventHandler(object sender, ContainerReceiveCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ContainerReceiveCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ContainerReceiveCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void ContainerOutCompletedEventHandler(object sender, ContainerOutCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class ContainerOutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal ContainerOutCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void CheckComesbackCompletedEventHandler(object sender, CheckComesbackCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class CheckComesbackCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal CheckComesbackCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void CreateBillMACompletedEventHandler(object sender, CreateBillMACompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class CreateBillMACompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal CreateBillMACompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + public delegate void AddMesFGFinCompletedEventHandler(object sender, AddMesFGFinCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.8.4084.0")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class AddMesFGFinCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal AddMesFGFinCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Controller/Web References/BomVersion1/Reference.map b/Controller/Web References/BomVersion1/Reference.map new file mode 100644 index 0000000..0cff30e --- /dev/null +++ b/Controller/Web References/BomVersion1/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Controller/app.config b/Controller/app.config index 51be330..8f6c9da 100644 --- a/Controller/app.config +++ b/Controller/app.config @@ -1,29 +1,52 @@ - + -
+
+ +
+ - - + + - - + + - + - + - \ No newline at end of file + + + + http://10.89.25.69:8085/JsonService.asmx + + + http://10.62.144.124:8016/JsonService.asmx + + + http://192.168.0.228:7602/JsonService.asmx + + + http://10.62.144.124:8070/JsonService.asmx + + + + + + + + diff --git a/Models/AppBoxEntity/AppBoxContext.cs b/Models/AppBoxEntity/AppBoxContext.cs index 1b2df8a..8e2d4f4 100644 --- a/Models/AppBoxEntity/AppBoxContext.cs +++ b/Models/AppBoxEntity/AppBoxContext.cs @@ -27,7 +27,8 @@ namespace CK.SCP.Models.AppBoxEntity public DbSet TA_FACTORY { get; set; } public DbSet VenderUsers { get; set; } - public DbSet FactoryUsers { get; set; } + public DbSet FactoryUsers { get; set; } + public DbSet UserTokens { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); diff --git a/Models/AppBoxEntity/User.cs b/Models/AppBoxEntity/User.cs index 1278da1..1e1e0ce 100644 --- a/Models/AppBoxEntity/User.cs +++ b/Models/AppBoxEntity/User.cs @@ -77,6 +77,10 @@ namespace CK.SCP.Models.AppBoxEntity public DateTime? LastLoginTime { get; set; } public DateTime? CreateTime { get; set; } + public int ErrorCount { get; set; } + + public DateTime LastUpdatePasswordTime { get; set; } = DateTime.Now; + public virtual ICollection TA_FACTORY { get; set; } /* public virtual ICollection FACTORY_ADDRESS { get; set; } diff --git a/Models/AppBoxEntity/UserToken.cs b/Models/AppBoxEntity/UserToken.cs new file mode 100644 index 0000000..9c6e2f2 --- /dev/null +++ b/Models/AppBoxEntity/UserToken.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.AppBoxEntity +{ + public class UserToken : IKeyID + { + [Key] + public int ID { get; set; } + + [Required, StringLength(50)] + public string UserName { get; set; } + + [StringLength(500)] + public string Token { get; set; } + + public System.DateTime CreateTime { get; set; } + + [StringLength(50)] + public string CreateUser { get; set; } + public Nullable UpdateTime { get; set; } + + [StringLength(50)] + public string UpdateUser { get; set; } + + [StringLength(500)] + public string Remark { get; set; } + } +} diff --git a/Models/CK.SCP.Models.csproj b/Models/CK.SCP.Models.csproj index b6c0c90..e6cfa8a 100644 --- a/Models/CK.SCP.Models.csproj +++ b/Models/CK.SCP.Models.csproj @@ -11,6 +11,7 @@ CK.SCP.Models v4.5.2 512 + true @@ -46,6 +47,7 @@ + @@ -53,6 +55,9 @@ + + ..\UniApiGroup\bin\Debug\Z.EntityFramework.Extensions.dll + @@ -72,6 +77,7 @@ + @@ -331,7 +337,11 @@ + + + + @@ -340,15 +350,34 @@ + + + + + + + + + + + + + + + + + + + @@ -376,6 +405,8 @@ + + @@ -385,6 +416,8 @@ + + @@ -425,6 +458,9 @@ + + + @@ -440,6 +476,8 @@ + + @@ -451,6 +489,11 @@ + + + + + diff --git a/Models/EntitiesFactory.cs b/Models/EntitiesFactory.cs index e5ec486..9d0f72f 100644 --- a/Models/EntitiesFactory.cs +++ b/Models/EntitiesFactory.cs @@ -174,7 +174,7 @@ namespace CK.SCP.Models { try { - db.SaveChanges(); + db.BulkSaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//ʵ֤쳣 { diff --git a/Models/Enums/SCP_ENUM.cs.cs b/Models/Enums/SCP_ENUM.cs.cs index 0e4d0f2..cc266e9 100644 --- a/Models/Enums/SCP_ENUM.cs.cs +++ b/Models/Enums/SCP_ENUM.cs.cs @@ -81,6 +81,15 @@ namespace CK.SCP.Models.Enums Non_Contract = 2, } + public enum BillFwModType + { + [Description("普通订单")] + Contract = 1, + [Description("委外订单")] + Non_Contract = 2, + [Description("期货订单")] + Qh_Contract = 3, + } public enum AskState { [Description("新建")] diff --git a/Models/Enums/UniApiType.cs b/Models/Enums/UniApiType.cs index 1db54bd..9eb77ae 100644 --- a/Models/Enums/UniApiType.cs +++ b/Models/Enums/UniApiType.cs @@ -5,7 +5,9 @@ namespace CK.SCP.Models.Enums public enum UniApiType { [Description("订单")] - PO, + Pobillnum, + [Description("大订单")] + MaxPobillnum, [Description("收货")] Receive, [Description("条码")] diff --git a/Models/GlobalConfig.cs b/Models/GlobalConfig.cs index 0db5485..c8e7e07 100644 --- a/Models/GlobalConfig.cs +++ b/Models/GlobalConfig.cs @@ -15,19 +15,24 @@ namespace CK.SCP.Models public const string WmsDbFileName = "Wms数据库设置.ini"; public const string DataCenterDbFileName = "数据中心数据库设置.ini"; public const string ExchangeCenterDbFileName = "交换中心数据库设置.ini"; - + public const string QiMingERPDatabase = "启明ERP数据库设置.ini"; private static DbSetting _scpDatabase; private static DbSetting _appboxDatabase; private static DbSetting _uniApiDatabase; private static DbSetting _wmsDatabase; - + private static DbSetting _qiMingERPDatabase; private static DbSetting _dcDB; private static DbSetting _ecDB; + + public static DbSetting qiMingERPDatabase + { + get { return _qiMingERPDatabase ?? (_qiMingERPDatabase = GetConfigValues(QiMingERPDatabase)); } - + set { _qiMingERPDatabase = value; } + } public static DbSetting ScpDatabase { get { return _scpDatabase ?? (_scpDatabase = GetConfigValues(ScpDbFileName)); } diff --git a/Models/ScpCache.cs b/Models/ScpCache.cs index 97f1bed..09bb437 100644 --- a/Models/ScpCache.cs +++ b/Models/ScpCache.cs @@ -18,7 +18,7 @@ namespace CK.SCP.Models private static List _usersList; private static List _ReceiveList; private static List _FactoryList; - private static List _PortList; + private static List _PortList; private static ScpConfig _config; public static ScpConfig Config @@ -319,5 +319,21 @@ namespace CK.SCP.Models public bool 负数发票 { get; set; } = false; public bool 开票数量限制 { get; set; } = true; public bool 数据中心接口 { get; set; } = false; + public string 密码验证格式 { get; set; } = "^(?![0-9]+$)(?![a-zA-Z]+$)(?![0-9a-zA-Z]+$)(?![0-9\\W]+$)(?![a-zA-Z\\W]+$)[0-9A-Za-z\\W]{8,}$"; + public string 密码验证提示语 { get; set; } = "至少8位,必须包含字母、数字和特殊字符!"; + // public string 密码验证格式 { get; set; } = "^((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])|(?=.*[a-z])(?=.*[0-9])(?=.*[$@$!%*#?&])|(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*#?&])|(?=.*[A-Z])(?=.*[a-z])(?=.*[$@$!%*#?&])).{8,}$"; + + //public string 密码验证格式 { get; set; } = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&]{8,10}"; + //public string 密码验证格式 { get; set; } = "^((?=.*[a-z])(?=.*[A-Z])(?=.*\\d)|(?=.*[a-z])(?=.*[A-Z])(?=.*[$@$!%*?&])|(?=.*\\d)(?=.*[A-Z])(?=.*[$@$!%*?&])|(?=.*\\d)(?=.*[a-z])(?=.*[$@$!%*?&])).{8,}$"; + + // public string 密码验证格式 { get; set; } = "^((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])|(?=.*[a-z])(?=.*[0-9])(?=.*[\\W])|(?=.*[A-Z])(?=.*[0-9])(?=.*[\\W])|(?=.*[A-Z])(?=.*[a-z])(?=.*[\\W])).{8,}$"; + // public string 密码验证提示语 { get; set; } = "至少8位,必须包含大写字母、小写字母、数字和特殊字符中的三种!"; + + public string 默认密码 { get; set; } = "666666"; + public string 密码锁定次数 { get; set; } = "5"; + + public string 更换密码周期 { get; set; } = "6"; + + public bool 密码验证 { get; set; } = false; } } \ No newline at end of file diff --git a/Models/ScpEntities.cs b/Models/ScpEntities.cs index d734b7e..e1a2e93 100644 --- a/Models/ScpEntities.cs +++ b/Models/ScpEntities.cs @@ -32,16 +32,39 @@ namespace CK.SCP.Models { } - + public virtual DbSet V_TB_REEEE { set; get; } + public virtual DbSet TB_SUPPLIER_MAIL { set; get; } + public virtual DbSet TA_ProductionLine { get; set; } + public virtual DbSet TA_PurchasGroup { get; set; } + public virtual DbSet TA_PinFan { get; set; } + public virtual DbSet TA_BOXTYPE { get; set; } + public virtual DbSet TA_StorageLocation { get; set; } + public virtual DbSet TA_Appliance { get; set; } + public virtual DbSet TB_ASN_PARTBOX { get; set; } + public virtual DbSet TB_PALLETS_BTL { get; set; } + public virtual DbSet TA_Receiving_Information { get; set; } + public virtual DbSet V_TA_APPLIANCE { get; set; } + public virtual DbSet TA_SubPart { get; set; } + public virtual DbSet TB_MAXPO { get; set; } + public virtual DbSet TB_MAXPO_DETAIL { get; set; } + public virtual DbSet V_TB_MAXPO { get; set; } + public virtual DbSet V_TB_MAXPO_DETAIL { get; set; } public virtual DbSet TA_BILLTYPE { get; set; } public virtual DbSet TA_CONFIG { get; set; } public virtual DbSet TA_PART { get; set; } + public virtual DbSet TA_CarModel { get; set; } + public virtual DbSet TA_SubPartCode { get; set; } + public virtual DbSet V_TA_SubPartCode { get; set; } + public virtual DbSet TA_ASK_SUBPART { get; set; } + public virtual DbSet TB_FACTORY { get; set; } public virtual DbSet TA_VEND_PART { get; set; } public virtual DbSet TA_VENDER { get; set; } public virtual DbSet TB_ARRIVE { get; set; } public virtual DbSet TB_ARRIVE_DETAIL { get; set; } public virtual DbSet TB_INVOICE { get; set; } + public virtual DbSet TB_MAXPO_CONSUME { get; set; } + public virtual DbSet V_TB_MAXPO_CONSUME { get; set; } public virtual DbSet TB_INVOICE_DETAIL { get; set; } public virtual DbSet TB_RECEIVE { get; set; } public virtual DbSet TB_RECEIVE_DETAIL { get; set; } @@ -49,13 +72,15 @@ namespace CK.SCP.Models public virtual DbSet TB_REJECT_DETAIL { get; set; } public virtual DbSet TA_FACTORY_CONFIG { get; set; } public virtual DbSet TL_BASEDATA { get; set; } - public virtual DbSet TL_BILL { get; set; } + public virtual DbSet TL_BILL { get; set; } public virtual DbSet TL_OPER { get; set; } public virtual DbSet TS_BARCODE { get; set; } public virtual DbSet V_TS_BARCODE { get; set; } public virtual DbSet TS_BARCODE_SMALL { get; set; } public virtual DbSet TS_STOCK { get; set; } public virtual DbSet TS_UNI_API { get; set; } + public virtual DbSet TB_PO_SUBDETAIL { get; set; } + public virtual DbSet V_TB_PO_SUBDETAIL { get; set; } public virtual DbSet TS_UNI_API_HIS { get; set; } public virtual DbSet TT_CURRENCY { get; set; } public virtual DbSet TT_PROJECT { get; set; } @@ -76,6 +101,7 @@ namespace CK.SCP.Models public virtual DbSet V_TB_ASK { get; set; } public virtual DbSet TB_ASK_DETAIL { get; set; } public virtual DbSet V_TB_ASK_DETAIL { get; set; } + public virtual DbSet TM_CYJ_BOM { get; set; } public virtual DbSet TB_PO { get; set; } public virtual DbSet TB_PO_DETAIL { get; set; } public virtual DbSet TB_ASN { get; set; } @@ -124,6 +150,7 @@ namespace CK.SCP.Models public virtual DbSet TS_BARCODE_CUSTOM { get; set; } public virtual DbSet V_TA_VEND_PART { get; set; } public virtual DbSet TB_PRICE { get; set; } + public virtual DbSet TB_NetPrice { get; set; } public virtual DbSet TB_FORECAST { get; set; } public virtual DbSet V_TB_FORECAST { get; set; } public virtual DbSet TA_MoldSharing { get; set; } @@ -166,15 +193,27 @@ namespace CK.SCP.Models modelBuilder.Entity() .Property(e => e.Amt) .HasPrecision(18, 5); + modelBuilder.Entity() + .Property(e => e.Amt) + .HasPrecision(18, 5); modelBuilder.Entity() .Property(e => e.VendAbbCode) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.PackQty) .HasPrecision(19, 2); + modelBuilder.Entity() + .Property(e => e.PlanQty) + .HasPrecision(19, 6); + modelBuilder.Entity() + .Property(e => e.PackQty) + .HasPrecision(19, 6); modelBuilder.Entity() .Property(e => e.ReceivedQty) .HasPrecision(19, 2); + modelBuilder.Entity() + .Property(e => e.Price) + .HasPrecision(19, 5); modelBuilder.Entity() .Property(e => e.PackQty) .HasPrecision(19, 2); @@ -264,15 +303,43 @@ namespace CK.SCP.Models .HasPrecision(18, 2); modelBuilder.Entity() .Property(e => e.PackQty) - .HasPrecision(18, 5); - - modelBuilder.Entity() + .HasPrecision(18, 6); + modelBuilder.Entity() + .Property(e => e.Qty) + .HasPrecision(18, 6); + modelBuilder.Entity() + .Property(e => e.Qty) + .HasPrecision(18, 6); + modelBuilder.Entity() + .Property(e => e.SubQty) + .HasPrecision(18, 6); + modelBuilder.Entity() + .Property(e => e.Qty) + .HasPrecision(18, 6); + modelBuilder.Entity() .Property(e => e.Rate) .HasPrecision(18, 5); modelBuilder.Entity() .Property(e => e.CurAmt) .HasPrecision(18, 5); - + modelBuilder.Entity() + .Property(e => e.MinordQty) + .HasPrecision(18, 6); + modelBuilder.Entity() + .Property(e => e.Singlecon) + .HasPrecision(18, 6); + modelBuilder.Entity() + .Property(e => e.OrderQtyd) + .HasPrecision(18, 6); + modelBuilder.Entity() + .Property(e => e.OrderQtykg) + .HasPrecision(18, 6); + modelBuilder.Entity() +.Property(e => e.OrderNumber) +.HasPrecision(18, 6); + modelBuilder.Entity() +.Property(e => e.PoQty) +.HasPrecision(18, 6); } } } diff --git a/Models/ScpEntity/ExcelExportEnttity/SCP_APPLIANCE_EXPOPT.cs b/Models/ScpEntity/ExcelExportEnttity/SCP_APPLIANCE_EXPOPT.cs new file mode 100644 index 0000000..189d80a --- /dev/null +++ b/Models/ScpEntity/ExcelExportEnttity/SCP_APPLIANCE_EXPOPT.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity.ExcelExportEnttity +{ + public class SCP_APPLIANCE_EXPOPT + { + public string 零件号码; + public string 材质; + public string 收货口; + public string 零件描述; + public string 车型; + public string 标包数; + public string 背番号; + public string 所番地; + public string 箱种; + public string 后工程; + public string 供应商代码; + } +} diff --git a/Models/ScpEntity/ExcelExportEnttity/SCP_INVOICE_DETAIL_EXPORT.cs b/Models/ScpEntity/ExcelExportEnttity/SCP_INVOICE_DETAIL_EXPORT.cs index 645520b..3b7d849 100644 --- a/Models/ScpEntity/ExcelExportEnttity/SCP_INVOICE_DETAIL_EXPORT.cs +++ b/Models/ScpEntity/ExcelExportEnttity/SCP_INVOICE_DETAIL_EXPORT.cs @@ -30,5 +30,7 @@ namespace CK.SCP.Models.ScpEntity.ExcelExportEnttity public string 开票数量 { get; set; }//Qty public string 备注 { get; set; }//Remark + public string 发票金额 { get; set; } + public string 订单金额 { get; set; } } } diff --git a/Models/ScpEntity/ExcelExportEnttity/SCP_MAXPODC_EXPORT.cs b/Models/ScpEntity/ExcelExportEnttity/SCP_MAXPODC_EXPORT.cs new file mode 100644 index 0000000..085a055 --- /dev/null +++ b/Models/ScpEntity/ExcelExportEnttity/SCP_MAXPODC_EXPORT.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity.ExcelExportEnttity +{ + public class SCP_MAXPODC_EXPORT + { + public string 订单编号 { get; set; } + public string 供应商编码 { get; set; } + public string 供应商名称 { get; set; } + public string 合同月 { get; set; } + + } +} diff --git a/Models/ScpEntity/ExcelExportEnttity/SCP_MAXPO_DETAIL_EXPORT.cs b/Models/ScpEntity/ExcelExportEnttity/SCP_MAXPO_DETAIL_EXPORT.cs new file mode 100644 index 0000000..405944a --- /dev/null +++ b/Models/ScpEntity/ExcelExportEnttity/SCP_MAXPO_DETAIL_EXPORT.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity.ExcelExportEnttity +{ + public class SCP_MAXPO_DETAIL_EXPORT + { + public string 车型 { get; set; } + public string 零件号 { get; set; } + public string 原材物料号 { get; set; } + public string 材质 { get; set; } + public string 技术标准 { get; set; } + public string 起定量 { get; set; } + public string 订货量吨 { get; set; } + public string 订货件数 { get; set; } + + public string 材料厂家 { get; set; } + public string 行号 { get; set; } + + public string 预测1 { get; set; } + public string 预测2 { get; set; } + public string 预测3 { get; set; } + public string 预测4 { get; set; } + public string 预测5 { get; set; } + public string 预测6 { get; set; } + + } +} diff --git a/Models/ScpEntity/ExcelExportEnttity/SCP_MAXPO_EXPORT.cs b/Models/ScpEntity/ExcelExportEnttity/SCP_MAXPO_EXPORT.cs new file mode 100644 index 0000000..c2668dd --- /dev/null +++ b/Models/ScpEntity/ExcelExportEnttity/SCP_MAXPO_EXPORT.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity.ExcelExportEnttity +{ + public class SCP_MAXPO_EXPORT + { + public string 车型 { get; set; } + public string 零件号 { get; set; } + public string 原材物料号 { get; set; } + public string 材质 { get; set; } + public string 技术标准 { get; set; } + public string 起定量 { get; set; } + public string 订货量吨 { get; set; } + public string 订货件数 { get; set; } + public string 供应商编号 { get; set; } + public string 材料厂家 { get; set; } + public string 备注 { get; set; } + } + } diff --git a/Models/ScpEntity/ExcelExportEnttity/SCP_PO_DETAIL_EXPORT.cs b/Models/ScpEntity/ExcelExportEnttity/SCP_PO_DETAIL_EXPORT.cs index 66aea79..2d88864 100644 --- a/Models/ScpEntity/ExcelExportEnttity/SCP_PO_DETAIL_EXPORT.cs +++ b/Models/ScpEntity/ExcelExportEnttity/SCP_PO_DETAIL_EXPORT.cs @@ -21,8 +21,9 @@ namespace CK.SCP.Models.ScpEntity.ExcelExportEnttity public string 退货数 { get; set; } //RejectQty" public string 到货日期 { get; set; } //EndTime" public string 单位 {get;set; } //PoUnit" + public string 预计到货日期 { get; set; } + public string 存储地点 { get; set; } - } public class SCP_PO_DETAIL_EXPORT_MODEL { @@ -98,5 +99,18 @@ namespace CK.SCP.Models.ScpEntity.ExcelExportEnttity public string 零件截至日期 { get; set; } public string 订单开始时间 { get; set; } public string 订单截至日期 { get; set; } + public string 组件物料号 { get; set; } + public string 采购组 { get; set; } + public string 组件计量单位 { get; set; } + public string 组件数量 { get; set; } + public string 器具型号 { get; set; } + public string 采购计量单位 { get; set; } + public string BOM版本 { get; set; } + public string 物料号码 { get; set; } + public string 车型 { get; set; } + public string 存储地点 { get; set; } + public string 原材物料号 { get; set; } + public string 期货订单 { get; set; } + } } diff --git a/Models/ScpEntity/ExcelExportEnttity/SCP_VENDER_EXPORT.cs b/Models/ScpEntity/ExcelExportEnttity/SCP_VENDER_EXPORT.cs index 5ae17ed..8972223 100644 --- a/Models/ScpEntity/ExcelExportEnttity/SCP_VENDER_EXPORT.cs +++ b/Models/ScpEntity/ExcelExportEnttity/SCP_VENDER_EXPORT.cs @@ -24,5 +24,14 @@ namespace CK.SCP.Models.ScpEntity.ExcelExportEnttity public string 状态 { get; set; } public string 备注 { get; set; } public string 税率 { get; set; } + public string 存储地点 { get; set; } + public string 层次 { get; set; } + public string 层次描述 { get; set; } + public string 描述 { get; set; } + public string 存货标识 { get; set; } + public string 品番 { get; set; } + public string 条码内容 { get; set; } + public string Code39条码 { get; set; } + public string 车型 { get; set; } } } diff --git a/Models/ScpEntity/ExcelExportEnttity/SCP_VENDER_PART_EXPORT.cs b/Models/ScpEntity/ExcelExportEnttity/SCP_VENDER_PART_EXPORT.cs index ea6b803..2d4174a 100644 --- a/Models/ScpEntity/ExcelExportEnttity/SCP_VENDER_PART_EXPORT.cs +++ b/Models/ScpEntity/ExcelExportEnttity/SCP_VENDER_PART_EXPORT.cs @@ -12,10 +12,30 @@ namespace CK.SCP.Models.ScpEntity.ExcelExportEnttity public string 供应商代码{ get; set; } public string 零件号 { get; set; } public string 供应商零件号 { get; set; } - public string 零件名称 { get; set; } + public string 零件号码 { get; set; } public string 标包数 { get; set; } public string 单位 { get; set; } public string 小包装数 { get; set; } public string 托盘包装数 { get; set; } + public string 器具型号 { get; set; } + public string 车型 { get; set; } + public string 客户零件号 { get; set; } + public string 产线 { get; set; } + public string 零件描述 { get; set; } + public string 背番号 { get; set; } + public string 所番地 { get; set; } + public string 箱种 { get; set; } + public string 后工程 { get; set; } + public string 物料号码 { get; set; } + public string 规格 { get; set; } + public string 材质 { get; set; } + public string 收货口 { get; set; } + public string 采购组 { get; set; } + public string 中文名称 { get; set; } + public string 描述 { get; set; } + public string 班次 { get; set; } + public string 收货人 { get; set; } + public string 收货人电话 { get; set; } + public string 打印托盘码 { get; set; } } } diff --git a/Models/ScpEntity/PURSubcontractor.cs b/Models/ScpEntity/PURSubcontractor.cs new file mode 100644 index 0000000..fb33c3f --- /dev/null +++ b/Models/ScpEntity/PURSubcontractor.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class PURSubcontractors + { + [Key] + public int di_batchno { get; set; } + public string purDocNO { get; set; } + public string purDocItemNO { get; set; } + + public string ordType { get; set; } + + public DateTime? docDate { get; set; } + + public string returnsItem { get; set; } + public string sizecoL { get; set; } + public string purDocItemCtg { get; set; } + public string plant { get; set; } + public string purOrg { get; set; } + public string companyCode { get; set; } + public string mtlNO { get; set; } + public string shortText { get; set; } + public decimal quantity { get; set; } + public DateTime? itemDeliveryDate { get; set; } + public decimal price { get; set; } + public string baseUnitMeasure { get; set; } + public string ordPriceUnit { get; set; } + + public string vendorNO { get; set; } + public string responsibleSalesperson { get; set; } + public string storeLocation { get; set; } + public string purGrp { get; set; } + public string phone { get; set; } + public string ctype { get; set; } + public string remark { get; set; } + public DateTime? createdDate { get; set; } + public string createdBy { get; set; } + public DateTime? di_updatetime { get; set; } + public string updatedBy { get; set; } + public string measureBaseUnit { get; set; } + public string groupWareMaterielNO { get; set; } + public string groupWarePlant { get; set; } + public DateTime? compRequireDate { get; set; } + public decimal COMPONQUANTITY { get; set; } + public string di_message { get; set; } + public string di_status { get; set; } + public DateTime? di_writeTime { get; set; } + public string outPurDocNO { get; set; } + public string outPurDocItemNO { get; set; } + public string alternativeBOM { get; set; } + } +} + diff --git a/Models/ScpEntity/TA_ASK_SUBPART.cs b/Models/ScpEntity/TA_ASK_SUBPART.cs new file mode 100644 index 0000000..6aea38a --- /dev/null +++ b/Models/ScpEntity/TA_ASK_SUBPART.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class TA_ASK_SUBPART + { + + [Key] + public long UID { get; set; } + public string PartCode { get; set; } + + public string SubPartCode { get; set; } + public string BOMedtiton { get; set; } + public string AskBillNum { get; set; } + + public decimal Qty { get; set; } + + public string VendBatch { get; set; } + } +} diff --git a/Models/ScpEntity/TA_Appliance.cs b/Models/ScpEntity/TA_Appliance.cs new file mode 100644 index 0000000..7aaf6b9 --- /dev/null +++ b/Models/ScpEntity/TA_Appliance.cs @@ -0,0 +1,28 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace CK.SCP.Models.ScpEntity +{ + + public partial class TA_Appliance + { + + [Key] + public long UID { get; set; } + public string PartCode { get; set; } + + public string Model { get; set; } + public decimal? PackNumber { get; set;} + public string PartDesc1 { get; set; } + public string ReciteNumber { get; set; } + public string SufanLand { get; set; } + public string BoxType { get; set; } + public string PostEngineering { get; set; } + public string PartNumber { get; set; } + public string PartDesc2 { get; set; } + public string Texture { get; set; } + public string ReceivingPort { get; set; } + public string VendID { get; set; } + + } +} diff --git a/Models/ScpEntity/TA_BOXTYPE.cs b/Models/ScpEntity/TA_BOXTYPE.cs new file mode 100644 index 0000000..9a1c475 --- /dev/null +++ b/Models/ScpEntity/TA_BOXTYPE.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public class TA_BOXTYPE + { + + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long UID { get; set; } + [Key] + public string BoxType { get; set; } + public bool Enabled { get; set; } + public string CreateUser { get; set; } + public DateTime CreateTime { get; set; } + } +} diff --git a/Models/ScpEntity/TA_CONFIG.cs b/Models/ScpEntity/TA_CONFIG.cs index cce6416..c45cd84 100644 --- a/Models/ScpEntity/TA_CONFIG.cs +++ b/Models/ScpEntity/TA_CONFIG.cs @@ -13,7 +13,7 @@ namespace CK.SCP.Models.ScpEntity public string ParamName { get; set; } [Required] - [StringLength(50)] + [StringLength(500)] public string ParamValue { get; set; } public int? State { get; set; } diff --git a/Models/ScpEntity/TA_CarModel.cs b/Models/ScpEntity/TA_CarModel.cs new file mode 100644 index 0000000..4a4328e --- /dev/null +++ b/Models/ScpEntity/TA_CarModel.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class TA_CarModel + { + + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long UID { get; set; } + [Key] + public string Model { get; set; } + + } +} \ No newline at end of file diff --git a/Models/ScpEntity/TA_PinFan.cs b/Models/ScpEntity/TA_PinFan.cs new file mode 100644 index 0000000..59cba4e --- /dev/null +++ b/Models/ScpEntity/TA_PinFan.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class TA_PinFan + { + + [Key] + public long UID { get; set; } + public string PartCode { get; set; } + + public string Barcodnt { get; set; } + public string Identification { get; set; } + + } +} diff --git a/Models/ScpEntity/TA_ProductionLine.cs b/Models/ScpEntity/TA_ProductionLine.cs new file mode 100644 index 0000000..b6dc7a5 --- /dev/null +++ b/Models/ScpEntity/TA_ProductionLine.cs @@ -0,0 +1,22 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace CK.SCP.Models.ScpEntity +{ + + public partial class TA_ProductionLine + { + + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long UID { get; set; } + + [Key] + [Column(Order = 0)] + [StringLength(50)] + public string PartCode { get; set; } + + public string ProductionLine { get; set; } + + + } +} diff --git a/Models/ScpEntity/TA_PurchasGroup.cs b/Models/ScpEntity/TA_PurchasGroup.cs new file mode 100644 index 0000000..6fb9e8f --- /dev/null +++ b/Models/ScpEntity/TA_PurchasGroup.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class TA_PurchasGroup + { + + [Key] + public long UID { get; set; } + public string PurchasingGroup { get; set; } + + public string ChineseName { get; set; } + public string Describe { get; set; } + + } +} \ No newline at end of file diff --git a/Models/ScpEntity/TA_Receiving_Information.cs b/Models/ScpEntity/TA_Receiving_Information.cs new file mode 100644 index 0000000..0fdc1ea --- /dev/null +++ b/Models/ScpEntity/TA_Receiving_Information.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public class TA_Receiving_Information + { + [Key] + public long UID { get; set; } + public string Shift { get; set; } + + public string Name { get; set; } + public string Phone { get; set; } + } +} diff --git a/Models/ScpEntity/TA_StorageLocation.cs b/Models/ScpEntity/TA_StorageLocation.cs new file mode 100644 index 0000000..7b7dead --- /dev/null +++ b/Models/ScpEntity/TA_StorageLocation.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class TA_StorageLocation + { + + [Key] + public long UID { get; set; } + public string StLocation { get; set; } + + public string Arrangement { get; set; } + public string Leveldescription { get; set; } + public string Describe { get; set; } + public string Inventoryation { get; set; } + + } +} diff --git a/Models/ScpEntity/TA_SubPart.cs b/Models/ScpEntity/TA_SubPart.cs new file mode 100644 index 0000000..9c8ddbc --- /dev/null +++ b/Models/ScpEntity/TA_SubPart.cs @@ -0,0 +1,20 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace CK.SCP.Models.ScpEntity +{ + + public partial class TA_SubPart + { + + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long UID { get; set; } + + [Key] + [Column(Order = 0)] + [StringLength(50)] + public string PartCode { get; set; } + public string SubPart { get; set; } + + } +} diff --git a/Models/ScpEntity/TA_SubPartCode.cs b/Models/ScpEntity/TA_SubPartCode.cs new file mode 100644 index 0000000..4f01f74 --- /dev/null +++ b/Models/ScpEntity/TA_SubPartCode.cs @@ -0,0 +1,22 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Web; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class TA_SubPartCode + { + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + [Key] + public long UID { get; set; } + public string PartCode { get; set; } + public string SubPartCode { get; set; } + + public string BOMedtiton { get; set; } + public string Site { get; set; } + public decimal Qty { get; set; } + public decimal SUMQTY { get; set; } + + } +} diff --git a/Models/ScpEntity/TB_ASK.cs b/Models/ScpEntity/TB_ASK.cs index 6e26293..b5d5d9f 100644 --- a/Models/ScpEntity/TB_ASK.cs +++ b/Models/ScpEntity/TB_ASK.cs @@ -41,6 +41,7 @@ namespace CK.SCP.Models.ScpEntity public string Extend2 { get; set; } public string Extend3 { get; set; } public string SubSite { get; set; } - + public string AskType { get; set; } + } } diff --git a/Models/ScpEntity/TB_ASK_DETAIL.cs b/Models/ScpEntity/TB_ASK_DETAIL.cs index 83d1ed4..c140123 100644 --- a/Models/ScpEntity/TB_ASK_DETAIL.cs +++ b/Models/ScpEntity/TB_ASK_DETAIL.cs @@ -46,7 +46,7 @@ namespace CK.SCP.Models.ScpEntity public string ReceivedPort { get; set; } - + public string Remark1 { get; set; } public decimal? ReduceQty { get; set; } public string Site { get; set; } diff --git a/Models/ScpEntity/TB_ASN_DETAIL.cs b/Models/ScpEntity/TB_ASN_DETAIL.cs index 4b9ed93..c893ac6 100644 --- a/Models/ScpEntity/TB_ASN_DETAIL.cs +++ b/Models/ScpEntity/TB_ASN_DETAIL.cs @@ -31,7 +31,7 @@ namespace CK.SCP.Models.ScpEntity [StringLength(50)] public string Batch { get; set; } public DateTime? ProduceDate { get; set; } - [StringLength(50)] + public string VendBatch { get; set; } public decimal Qty { get; set; } [StringLength(50)] diff --git a/Models/ScpEntity/TB_ASN_PARTBOX.cs b/Models/ScpEntity/TB_ASN_PARTBOX.cs new file mode 100644 index 0000000..fbfc110 --- /dev/null +++ b/Models/ScpEntity/TB_ASN_PARTBOX.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class TB_ASN_PARTBOX + { + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + [Key] + public long UID { get; set; } + [StringLength(50)] + public string AsnBillNum { get; set; } + public string PartCode { get; set; } + public string BoxType { get; set; } + public int Box { get; set; } + public int Qty { get; set; } + public int Qty1 { get; set; } + public int SumBox { get; set; } + public string PoBillNum { get; set; } + public string VendId { get; set; } + public string ShipTime { get; set; } + public string Batch { get; set; } + public int PoLine { get; set; } + public decimal PackQty { get; set; } + } +} diff --git a/Models/ScpEntity/TB_INVOICE_DETAIL.cs b/Models/ScpEntity/TB_INVOICE_DETAIL.cs index a7cd28e..efed916 100644 --- a/Models/ScpEntity/TB_INVOICE_DETAIL.cs +++ b/Models/ScpEntity/TB_INVOICE_DETAIL.cs @@ -55,7 +55,6 @@ namespace CK.SCP.Models.ScpEntity [StringLength(50)] public string Site { get; set; } [StringLength(50)] - public string SubSite { get; set; } - + public string SubSite { get; set; } } } diff --git a/Models/ScpEntity/TB_MAXPO.cs b/Models/ScpEntity/TB_MAXPO.cs new file mode 100644 index 0000000..1ec35d4 --- /dev/null +++ b/Models/ScpEntity/TB_MAXPO.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class TB_MAXPO + { + + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long UID { get; set; } + + [Key] + [Column(Order = 0)] + [StringLength(50)] + public string PoBillNum { get; set; } + public string VendId { get; set; } + public DateTime CreateTime { get; set; } + public string CreateUser { get; set; } + public string ContractNo { get; set; } + public string ContractMonth { get; set; } + public string Site { get; set; } + + public string Remark { get; set; } + public bool IsDeleted { get; set; } + } +} diff --git a/Models/ScpEntity/TB_MAXPO_CONSUME.cs b/Models/ScpEntity/TB_MAXPO_CONSUME.cs new file mode 100644 index 0000000..1265d4b --- /dev/null +++ b/Models/ScpEntity/TB_MAXPO_CONSUME.cs @@ -0,0 +1,19 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class TB_MAXPO_CONSUME + { + [Key] + public long UID { get; set; } + public string BillNum { get; set; } + + public string PartCode { get; set; } + public string VendId { get; set; } + public decimal PoQty { get; set; } + public string PoBillNum { get; set; } + public DateTime? ShipTime { get; set; } + } +} diff --git a/Models/ScpEntity/TB_MAXPO_DETAIL.cs b/Models/ScpEntity/TB_MAXPO_DETAIL.cs new file mode 100644 index 0000000..81e41b9 --- /dev/null +++ b/Models/ScpEntity/TB_MAXPO_DETAIL.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class TB_MAXPO_DETAIL + { + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long UID { get; set; } + + + + [Key] + [Column(Order =0)] + public string PoBillNum { get; set; } + [Key] + [Column(Order = 1)] + public string VendId { get; set; } + public DateTime CreateTime { get; set; } + public string CreateUser { get; set; } + + public string ContractNo { get; set; } + [Key] + [Column(Order = 2)] + public string PartCode { get; set; } + public string PartNumber { get; set; } + public string Texture { get; set; } + public string Model { get; set; } + public string Finprspec { get; set; } + public string TechStandard { get; set; } + public decimal MinordQty { get; set; } + public decimal Singlecon { get; set; } + public decimal OrderQtyd { get; set; } + public decimal OrderQtykg { get; set; } + public decimal OrderNumber { get; set; } + public string forecastone { get; set; } + public string forecasttwo { get; set; } + public string forecastthree { get; set; } + public string forecastfour { get; set; } + public string forecastfive { get; set; } + public string forecastsix { get; set; } + public string Matermanu { get; set; } + public string ContractMonth { get; set; } + public decimal BomQty { get; set; } + public int PoLine { get; set; } + public string Site { get; set; } + public decimal SurplusQty { get; set; } + public decimal AsnQty { get; set; } + public decimal ReceQty { get; set; } + public bool IsDeleted { get; set; } + public decimal ReturnQty { get; set; } + } +} diff --git a/Models/ScpEntity/TB_NetPrice.cs b/Models/ScpEntity/TB_NetPrice.cs new file mode 100644 index 0000000..475921c --- /dev/null +++ b/Models/ScpEntity/TB_NetPrice.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using ChangKeTec.Wms.Models; + +namespace CK.SCP.Models.ScpEntity +{ + + public partial class TB_NetPrice + { + [Key] + public int UID { get; set; } + public string VendId { get; set; } + public string Site { get; set; } + public string PartCode { get; set; } + public Nullable StartTime { get; set; } + public Nullable EndTime { get; set; } + public string Curr { get; set; } + public string Unit { get; set; } + [DecimalPrecision(18, 5)] + public decimal Amt { get; set; } + public string Remarks { get; set; } + public string Extend1 { get; set; } + public string Extend2 { get; set; } + public string Extend3 { get; set; } + //public int State { get; set; } + //public decimal? VendAmt { get; set; } + } +} diff --git a/Models/ScpEntity/TB_PALLETS_BTL.cs b/Models/ScpEntity/TB_PALLETS_BTL.cs new file mode 100644 index 0000000..43fd2ad --- /dev/null +++ b/Models/ScpEntity/TB_PALLETS_BTL.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class TB_PALLETS_BTL + { + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long UID { get; set; } + [Key] + public string PalletNum{ get; set; } + public string AsnBillNum { get; set; } + public int SumBox { get; set; } + public string PoBillNum { get; set; } + public decimal SumQty { get; set; } + public string VendId { get; set; } + public string VendName { get; set; } + public string ShipTime { get; set; } + public string PartCode { get; set; } + public string PartCode1 { get; set; } + public string PartCode2 { get; set; } + public string PartCode3 { get; set; } + public string PartCode4 { get; set; } + public string PartCode5 { get; set; } + public string Box { get; set; } + public string Box1 { get; set; } + public string Box2 { get; set; } + public string Box3 { get; set; } + public string Box4 { get; set; } + public string Box5 { get; set; } + public string PackQty { get; set; } + public string PackQty1 { get; set; } + public string PackQty2 { get; set; } + public string PackQty3 { get; set; } + public string PackQty4 { get; set; } + public string PackQty5 { get; set; } + public string PalletCode { get; set; } + [NotMapped] + public List UIDList { get; set; } + public bool IsDeleted { get; set; } + } +} diff --git a/Models/ScpEntity/TB_PO.cs b/Models/ScpEntity/TB_PO.cs index ccca48b..6495fbf 100644 --- a/Models/ScpEntity/TB_PO.cs +++ b/Models/ScpEntity/TB_PO.cs @@ -15,7 +15,7 @@ namespace CK.SCP.Models.ScpEntity using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; - public partial class TB_PO:RecordEntity + public partial class TB_PO : RecordEntity { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public long UID { get; set; } @@ -41,12 +41,12 @@ namespace CK.SCP.Models.ScpEntity public int State { get; set; } [StringLength(200)] public string Remark { get; set; } - + public DateTime? BeginTime { get; set; } public DateTime? EndTime { get; set; } - - + [StringLength(50)] + [NotMapped] @@ -56,9 +56,40 @@ namespace CK.SCP.Models.ScpEntity public string Extend3 { get; set; } public string SubSite { get; set; } + + + public TB_PO Clone(string p_NewBill, string p_Site) + { + return new TB_PO() + { + PoBillNum = p_NewBill, + ErpBillNum = p_NewBill, + UID = UID, + ModType=ModType, + State=State, + VendId = VendId, + Contacter = Contacter, + Buyer = Buyer, + BuyerPhone = BuyerPhone, + Remark = Remark, + BeginTime = BeginTime, + EndTime = EndTime, + ReceivedPort = ReceivedPort, + Extend1 = Extend1, + Extend2 = Extend2, + Extend3 = Extend3, + SubSite = SubSite, + Site = p_Site, + CreateUser = CreateUser, + CreateTime=CreateTime, + GUID=GUID, + UpdateInfo=UpdateInfo, + }; + } + } - - + + } diff --git a/Models/ScpEntity/TB_PO_DETAIL.cs b/Models/ScpEntity/TB_PO_DETAIL.cs index a549dfc..2083cf4 100644 --- a/Models/ScpEntity/TB_PO_DETAIL.cs +++ b/Models/ScpEntity/TB_PO_DETAIL.cs @@ -78,5 +78,6 @@ namespace CK.SCP.Models.ScpEntity public string Site { get; set; } + } } diff --git a/Models/ScpEntity/TB_PO_SUBDETAIL.cs b/Models/ScpEntity/TB_PO_SUBDETAIL.cs new file mode 100644 index 0000000..1a6176a --- /dev/null +++ b/Models/ScpEntity/TB_PO_SUBDETAIL.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class TB_PO_SUBDETAIL + { + + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + [Key] + public long UID { get; set; } + + public string PoBillNum { get; set; } + + public string PartCode { get; set; } + + public decimal Qty { get; set; } + + public decimal SubQty { get; set; } + + public string Site { get; set; } + + public string SubPartCode { get; set; } + + + + public string BOMedtiton { get; set; } + + public int PoLine { get; set; } + } +} diff --git a/Models/ScpEntity/TB_SUPPLIER_MAIL.cs b/Models/ScpEntity/TB_SUPPLIER_MAIL.cs new file mode 100644 index 0000000..09f92ac --- /dev/null +++ b/Models/ScpEntity/TB_SUPPLIER_MAIL.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public class TB_SUPPLIER_MAIL + { + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long Id { set; get; } + public string SupplicerCode { set; get; } + + public string Email { set; get; } + + public int State { set; get; } + + public string MailBody { set; get; } + + + + } +} diff --git a/Models/ScpEntity/TM_CYJ_BOM.cs b/Models/ScpEntity/TM_CYJ_BOM.cs new file mode 100644 index 0000000..696c7a7 --- /dev/null +++ b/Models/ScpEntity/TM_CYJ_BOM.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class TM_CYJ_BOM + { + [DatabaseGenerated(DatabaseGeneratedOption.Computed)] + public int UID { get; set; } + + [Key] + [Column(Order = 0)] + [StringLength(50)] + [DisplayName("物料号")] + public string PartCode { get; set; } + + [Key] + [Column(Order = 1)] + [StringLength(50)] + [DisplayName("子物料")] + public string SubPartCode { get; set; } + + [Key] + [Column(Order = 2)] + [DisplayName("Bom用途")] + public string BomUsage { get; set; } + + [Key] + [Column(Order = 3)] + [DisplayName("Bom替代")] + public string BomFillIn { get; set; } + + [DisplayName("特殊获取类型")] + public string SpecialType { get; set; } + + [DisplayName("用量")] + public decimal Qty { get; set; } + + [DisplayName("单位")] + public string Unit { get; set; } + + [DisplayName("删除标识")] + public string IsDelete { get; set; } + + [DisplayName("有效开始日期")] + public DateTime StartDate { get; set; } + + [DisplayName("有效截止日期")] + public DateTime EndDate { get; set; } + + [DisplayName("创建日期")] + public DateTime CreateTime { get; set; } + + [DisplayName("备注")] + public string Remark { get; set; } + } +} diff --git a/Models/ScpEntity/TS_BARCODE.cs b/Models/ScpEntity/TS_BARCODE.cs index 703d712..caca2c7 100644 --- a/Models/ScpEntity/TS_BARCODE.cs +++ b/Models/ScpEntity/TS_BARCODE.cs @@ -53,8 +53,7 @@ namespace CK.SCP.Models.ScpEntity [StringLength(50)] public string VendId { get; set; } - - [StringLength(50)] + public string VendBatch { get; set; } [Column(TypeName = "money")] @@ -84,7 +83,7 @@ namespace CK.SCP.Models.ScpEntity public string Extend1 { get; set; } public string Extend2 { get; set; } - public string Extend3 { get; set; } + public string Extend3 { get; set; } [DisplayName("Ӧ")] public string VendName => ScpCache.GetVendName(VendId,Site); @@ -106,6 +105,19 @@ namespace CK.SCP.Models.ScpEntity public string IsScanned_Desc => IsScanned ? "ɨ" : "δɨ"; [NotMapped] public decimal CanQty { get; set; } - + public string Extend4 { get; set; } + public string Extend5 { get; set; } + public DateTime Extend6 { get; set; } + public string Extend7 { get; set; } + public string Extend8 { get; set; } + public string Extend9 { get; set; } + public string Extend10{ get; set; } + public string Extend11 { get; set; } + public string Extend12 { get; set; } + public DateTime Extend13 { get; set; } + public string Extend14 { get; set; } + public string Extend15 { get; set; } + public string Extend16 { get; set; } + public string PalletNum { get; set; } } } diff --git a/Models/ScpEntity/TS_UNI_API.cs b/Models/ScpEntity/TS_UNI_API.cs index b44766f..b422491 100644 --- a/Models/ScpEntity/TS_UNI_API.cs +++ b/Models/ScpEntity/TS_UNI_API.cs @@ -81,9 +81,10 @@ namespace CK.SCP.Models.ScpEntity public decimal Tax { get; set; } public string Site { get; set; } public string Domain { get; set; } - + public string SubSite { get; set; } public string Extend1 { get; set; } public string Extend2 { get; set; } + public string Extend3 { get; set; } public TS_UNI_API_HIS ToHis() { return new TS_UNI_API_HIS diff --git a/Models/ScpEntity/V_ASN_PRINT.cs b/Models/ScpEntity/V_ASN_PRINT.cs index a46ca33..c596824 100644 --- a/Models/ScpEntity/V_ASN_PRINT.cs +++ b/Models/ScpEntity/V_ASN_PRINT.cs @@ -23,6 +23,7 @@ namespace CK.SCP.Models.ScpEntity public string CAAIPhone{get;set;} public string CAAIFax { get; set; } public string Total { get; set; } + public string CurrentUserPhone { get; set; } } @@ -42,6 +43,7 @@ namespace CK.SCP.Models.ScpEntity public string Batch { get; set; } public string VendBatch { get; set; } public string ProjectId { get; set; } + public string PoQty { get; set; } public string DockCode_Desc => ScpCache.PortList.Where(p => p.PORT_NO == DockCode).FirstOrDefault() == null ? "" : ScpCache.PortList.Where(p => p.PORT_NO == DockCode).FirstOrDefault().PORT_DESCRIPTION; } diff --git a/Models/ScpEntity/V_TA_APPLIANCE.cs b/Models/ScpEntity/V_TA_APPLIANCE.cs new file mode 100644 index 0000000..68d79a2 --- /dev/null +++ b/Models/ScpEntity/V_TA_APPLIANCE.cs @@ -0,0 +1,29 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace CK.SCP.Models.ScpEntity +{ + + public partial class V_TA_APPLIANCE + { + + [Key] + public long UID { get; set; } + public string PartCode { get; set; } + + public string Model { get; set; } + public decimal? PackNumber { get; set; } + public string PartDesc1 { get; set; } + public string ReciteNumber { get; set; } + public string SufanLand { get; set; } + public string BoxType { get; set; } + public string PostEngineering { get; set; } + public string PartNumber { get; set; } + public string PartDesc2 { get; set; } + public string Texture { get; set; } + public string ReceivingPort { get; set; } + public string VendID { get; set; } + public string VendName { get; set; } + + } +} diff --git a/Models/ScpEntity/V_TA_SubPartCode.cs b/Models/ScpEntity/V_TA_SubPartCode.cs new file mode 100644 index 0000000..1b9fe74 --- /dev/null +++ b/Models/ScpEntity/V_TA_SubPartCode.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Web; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class V_TA_SubPartCode + { + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + [Key] + public long UID { get; set; } + public string PartCode { get; set; } + public string SubPartCode { get; set; } + + public string BOMedtiton { get; set; } + public string Site { get; set; } + + public Decimal Qty { get; set; } + public Decimal SUMQTY { get; set; } + public string PartDesc1 { get; set; } + + public string PartDesc2 { get; set; } + public string Unit { get; set; } + [NotMapped] + public string Partname { get; set; } + [NotMapped] + public List PartList { set; get; } + + } +} diff --git a/Models/ScpEntity/V_TB_ASK.cs b/Models/ScpEntity/V_TB_ASK.cs index 6f51266..ecc15ee 100644 --- a/Models/ScpEntity/V_TB_ASK.cs +++ b/Models/ScpEntity/V_TB_ASK.cs @@ -61,6 +61,7 @@ namespace CK.SCP.Models.ScpEntity public string Extend3 { get; set; } public string SubSite { get; set; } + //public string AskType { get; set; } #region 条件 [NotMapped] public string Batch { get; set; } @@ -84,6 +85,8 @@ namespace CK.SCP.Models.ScpEntity public string Month { get; set; } [NotMapped] public bool IsComplete { get; set; } + public string AskType { get; set; } + #endregion } } diff --git a/Models/ScpEntity/V_TB_ASK_DETAIL.cs b/Models/ScpEntity/V_TB_ASK_DETAIL.cs index ff16455..21a1113 100644 --- a/Models/ScpEntity/V_TB_ASK_DETAIL.cs +++ b/Models/ScpEntity/V_TB_ASK_DETAIL.cs @@ -125,7 +125,11 @@ namespace CK.SCP.Models.ScpEntity public string ReceiveUser { get; set; } [NotMapped] public DateTime ProduceDate { get; set; } + [NotMapped] + public string Time { get; set; } + [NotMapped] + public string MaxTime { get; set; } #endregion } diff --git a/Models/ScpEntity/V_TB_ASN.cs b/Models/ScpEntity/V_TB_ASN.cs index 684f9b6..f0330a2 100644 --- a/Models/ScpEntity/V_TB_ASN.cs +++ b/Models/ScpEntity/V_TB_ASN.cs @@ -37,7 +37,7 @@ namespace CK.SCP.Models.ScpEntity public DateTime? ReceiveTime { get; set; } [StringLength(50)] public string ReceiveUser { get; set; } - + public DateTime EndTime { get; set; } [StringLength(50)] public string ErpBillNum { get; set; } public int? ModType { get; set; } diff --git a/Models/ScpEntity/V_TB_INVOICE_DETAIL.cs b/Models/ScpEntity/V_TB_INVOICE_DETAIL.cs index b03180c..98488a1 100644 --- a/Models/ScpEntity/V_TB_INVOICE_DETAIL.cs +++ b/Models/ScpEntity/V_TB_INVOICE_DETAIL.cs @@ -85,6 +85,8 @@ namespace CK.SCP.Models.ScpEntity public string SubSite { get; set; } - + public string Extend1 { get; set; } + public string Extend2 { get; set; } + } } diff --git a/Models/ScpEntity/V_TB_MAXPO.cs b/Models/ScpEntity/V_TB_MAXPO.cs new file mode 100644 index 0000000..ff1b808 --- /dev/null +++ b/Models/ScpEntity/V_TB_MAXPO.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class V_TB_MAXPO + { + + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long UID { get; set; } + + [Key] + [Column(Order = 0)] + [StringLength(50)] + public string PoBillNum { get; set; } + public string VendId { get; set; } + public string VendName { get; set; } + public DateTime CreateTime { get; set; } + public string CreateUser { get; set; } + public string ContractNo { get; set; } + public string ContractMonth { get; set; } + public string Site { get; set; } + public string Remark { get; set; } + [NotMapped] + public DateTime? BeginTime { get; set; } + [NotMapped] + public DateTime? EndTime { get; set; } + public bool IsDeleted { get; set; } + } +} diff --git a/Models/ScpEntity/V_TB_MAXPO_CONSUME .cs b/Models/ScpEntity/V_TB_MAXPO_CONSUME .cs new file mode 100644 index 0000000..192a44f --- /dev/null +++ b/Models/ScpEntity/V_TB_MAXPO_CONSUME .cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class V_TB_MAXPO_CONSUME + { + [Key] + public long UID { get; set; } + + public string PartCode { get; set; } + public string VendId { get; set; } + public string PoBillNum { get; set; } + public string ContractMonth { get; set; } + public string BillNum { get; set; } + public string PartDesc1 { get; set; } + public string PartDesc2 { get; set; } + public string VendName{ get; set; } + public DateTime? ShipTime { get; set; } + public decimal PoQty { get; set; } + + [NotMapped] + public List PoList { set; get; } + [NotMapped] + public List PartList { set; get; } + + } +} diff --git a/Models/ScpEntity/V_TB_MAXPO_DETAIL.cs b/Models/ScpEntity/V_TB_MAXPO_DETAIL.cs new file mode 100644 index 0000000..ae727c4 --- /dev/null +++ b/Models/ScpEntity/V_TB_MAXPO_DETAIL.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class V_TB_MAXPO_DETAIL + { + + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + [Key] + public long UID { get; set; } + + + [Column(Order = 0)] + [StringLength(50)] + public string PoBillNum { get; set; } + + public string PartCode { get; set; } + public string PartNumber { get; set; } + public string Texture { get; set; } + public string Model { get; set; } + public string Finprspec { get; set; } + public string TechStandard { get; set; } + public decimal MinordQty { get; set; } + public decimal Singlecon { get; set; } + public decimal OrderQtyd { get; set; } + public decimal OrderQtykg { get; set; } + public decimal OrderNumber { get; set; } + public string forecastone { get; set; } + public string forecasttwo { get; set; } + public string forecastthree { get; set; } + public string forecastfour { get; set; } + public string forecastfive { get; set; } + public string forecastsix { get; set; } + public string Matermanu { get; set; } + + public decimal BomQty { get; set; } + public string PartDesc2 { get; set; } + public int PoLine { get; set; } + public decimal SurplusQty { get; set; } + public string VendId { get; set; } + public string ContractMonth { get; set; } + public decimal AnQty { get; set; } + public decimal AsnQty { get; set; } + public decimal RecQty { get; set; } + + public string CreateUser { get; set; } + [NotMapped] + public DateTime? BeginTime { get; set; } + [NotMapped] + public DateTime? EndTime { get; set; } + public DateTime? CreateTime { get; set; } + public string VendName { get; set; } + public decimal ReceQty { get; set; } + public decimal ReturnQty { get; set; } + public bool IsDeleted { get; set; } + } + +} diff --git a/Models/ScpEntity/V_TB_PO.cs b/Models/ScpEntity/V_TB_PO.cs index ff3a585..a60f82b 100644 --- a/Models/ScpEntity/V_TB_PO.cs +++ b/Models/ScpEntity/V_TB_PO.cs @@ -57,6 +57,11 @@ namespace CK.SCP.Models.ScpEntity public string Extend3 { get; set; } public string SubSite { get; set; } + [NotMapped] + public List MaxpoList { get; set; } + + [NotMapped]///Ҫ󵽻 + public DateTime? EndTime_End { get; set; } diff --git a/Models/ScpEntity/V_TB_PO_DETAIL.cs b/Models/ScpEntity/V_TB_PO_DETAIL.cs index 6c8d7b4..b061151 100644 --- a/Models/ScpEntity/V_TB_PO_DETAIL.cs +++ b/Models/ScpEntity/V_TB_PO_DETAIL.cs @@ -67,5 +67,14 @@ namespace CK.SCP.Models.ScpEntity public string Extend3 { get; set; } public string SubSite { get; set; } + + [NotMapped] + public string Subpartspec { get; set; }//Ӽ + + [NotMapped] + public string ContractNo { get; set; }//ͬ + + [NotMapped] + public string ContractMonth { get; set; }//ͬ } } diff --git a/Models/ScpEntity/V_TB_PO_SUBDETAIL.cs b/Models/ScpEntity/V_TB_PO_SUBDETAIL.cs new file mode 100644 index 0000000..693a67b --- /dev/null +++ b/Models/ScpEntity/V_TB_PO_SUBDETAIL.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class V_TB_PO_SUBDETAIL + { + + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + [Key] + public long UID { get; set; } + + public string PoBillNum { get; set; } + + public string PartCode { get; set; } + public decimal Qty { get; set; } + public decimal SubQty { get; set; } + + public string Site { get; set; } + + public string SubPartCode { get; set; } + + + + public string BOMedtiton { get; set; } + + public int PoLine { get; set; } + public string PartDesc2 { get; set; } + + + + public string Unit { get; set; } + } +} diff --git a/Models/ScpEntity/V_TB_REEEE.cs b/Models/ScpEntity/V_TB_REEEE.cs new file mode 100644 index 0000000..e3af992 --- /dev/null +++ b/Models/ScpEntity/V_TB_REEEE.cs @@ -0,0 +1,33 @@ +namespace CK.SCP.Models.ScpEntity +{ + using System; + using System.Collections.Generic; + using System.ComponentModel.DataAnnotations; + using System.ComponentModel.DataAnnotations.Schema; + [Serializable] + public partial class V_TB_REEEE + { + [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long UID { get; set; } + public string PoBillNum { get; set; } + [StringLength(50)] + public string PartCode { get; set; } + public string DockCode { get; set; } + public decimal Qty { get; set; } + + public string VendId { get; set; } + public DateTime? CreateTime { get; set; } + public string VendName { get; set; } + public string PartDesc2 { get; set; } + public string CreateUser { get; set; } + public string PartGroup { get; set; } + public string Describe { get; set; } + public string Buyer { get; set; } + //public string Extend2 { get; set; } + [NotMapped] + public Nullable ReceiveTimeBegin { get; set; } + [NotMapped] + public Nullable ReceiveTimeEnd { get; set; } + } +} \ No newline at end of file diff --git a/Models/UniApiEntity/PURReplenishQty.cs b/Models/UniApiEntity/PURReplenishQty.cs new file mode 100644 index 0000000..20685c8 --- /dev/null +++ b/Models/UniApiEntity/PURReplenishQty.cs @@ -0,0 +1,17 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + + +namespace CK.SCP.Models.UniApiEntity +{ + public partial class PURReplenishQties + { + [Key] + public int di_batchno { get; set; } + public string PURDOCNO { get; set; } + public string purDocLineNO { get; set; } + public decimal replenishQty { get; set; } + public string client { get; set; } + public string plant { get; set; } + } +} diff --git a/Models/UniApiEntity/QadTableName.cs b/Models/UniApiEntity/QadTableName.cs index 4e2a7bf..bebfe20 100644 --- a/Models/UniApiEntity/QadTableName.cs +++ b/Models/UniApiEntity/QadTableName.cs @@ -44,11 +44,13 @@ namespace CK.SCP.Models.UniApiEntity { [Description("采购订单")] xxscm_pod_det, + [Description("大订单")] + xxscm_maxpod_det, [Description("发货单(ASN)")] xxscm_tx_mstr, [Description("发货单标签列表")] xxscm_tx_det, - [Description("发票")] + [Description("发货数量")] xxscm_inv_det, } diff --git a/Models/UniApiEntity/UniApiEntities.cs b/Models/UniApiEntity/UniApiEntities.cs index 96a1eeb..a5a39c6 100644 --- a/Models/UniApiEntity/UniApiEntities.cs +++ b/Models/UniApiEntity/UniApiEntities.cs @@ -1,3 +1,4 @@ +using CK.SCP.Models.ScpEntity; using System.Data.Entity; namespace CK.SCP.Models.UniApiEntity @@ -13,7 +14,9 @@ namespace CK.SCP.Models.UniApiEntity : base("name=ModelUniApi") { } - + public virtual DbSet xxerp_MaxbatchNO { get; set; } + public virtual DbSet xxDiMaxes { get; set; } + public virtual DbSet xxDiMaxes_Po { get; set; } public virtual DbSet xxmes_ctrl { get; set; } public virtual DbSet xxqad_cm_mstr { get; set; } public virtual DbSet xxqad_ctrl { get; set; } @@ -33,6 +36,7 @@ namespace CK.SCP.Models.UniApiEntity public virtual DbSet xxscm_ctrl { get; set; } public virtual DbSet xxscm_inv_det { get; set; } public virtual DbSet xxscm_pod_det { get; set; } + public virtual DbSet xxscm_maxpod_det { get; set; } public virtual DbSet xxqad_ppod_det { get; set; } public virtual DbSet xxscm_tx_det { get; set; } public virtual DbSet xxscm_tx_mstr { get; set; } @@ -48,9 +52,9 @@ namespace CK.SCP.Models.UniApiEntity public virtual DbSet xxwms_tag_det { get; set; } public virtual DbSet xxwms_tr_det { get; set; } public virtual DbSet xxwms_qua_det { get; set; } - + public virtual DbSet PURReplenishQty { get; set; } public virtual DbSet xxwms_review_det { get; set; } - + public virtual DbSet PURSubcontractors { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity() @@ -1241,126 +1245,7 @@ namespace CK.SCP.Models.UniApiEntity .Property(e => e.xxscm_inv_updateur) .IsUnicode(false); - modelBuilder.Entity() - .Property(e => e.xxscm_pod_seq) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_nbr) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_modtype) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_site) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_domain) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_part) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_desc) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_qty_ord) - .HasPrecision(18, 5); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_qty_rct) - .HasPrecision(18, 5); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_qty_std) - .HasPrecision(18, 5); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_price) - .HasPrecision(18, 5); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_curr) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_loc_um) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_um) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_um_conv) - .HasPrecision(18, 5); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_vend) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_name) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_attn) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_ship) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_made) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_buyer) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_buyer_phone) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_status) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_qadread) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_wmsread) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_scmread) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_mesread) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_rmks) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_createur) - .IsUnicode(false); - - modelBuilder.Entity() - .Property(e => e.xxscm_pod_updateur) - .IsUnicode(false); - + modelBuilder.Entity() .Property(e => e.xxscm_tx_seq) .IsUnicode(false); @@ -1500,6 +1385,9 @@ namespace CK.SCP.Models.UniApiEntity modelBuilder.Entity() .Property(e => e.xxscm_tx_mesread) .IsUnicode(false); + modelBuilder.Entity() + .Property(e => e.xxscm_tx_type) + .IsUnicode(false); modelBuilder.Entity() .Property(e => e.xxscm_tx_rmks) @@ -2177,7 +2065,33 @@ namespace CK.SCP.Models.UniApiEntity modelBuilder.Entity() .Property(e => e.xxwms_tr_updateur) .IsUnicode(false); - + modelBuilder.Entity() + .Property(e => e.COMPONQUANTITY) + .HasPrecision(18, 5); + modelBuilder.Entity() + .Property(e => e.quantity) + .HasPrecision(18, 5); + modelBuilder.Entity() + .Property(e => e.price) + .HasPrecision(18, 5); + modelBuilder.Entity() + .Property(e => e.xxscm_pod_qty_ord) + .HasPrecision(18, 5); + modelBuilder.Entity() + .Property(e => e.xxscm_maxpod_qty) + .HasPrecision(18, 6); + modelBuilder.Entity() +.Property(e => e.xxscm_maxpod_orderqty) +.HasPrecision(18, 6); + modelBuilder.Entity() +.Property(e => e.xxscm_maxpod_orderqtyd) +.HasPrecision(18, 6); + modelBuilder.Entity() +.Property(e => e.xxscm_maxpod_orderqtykg) +.HasPrecision(18, 6); + modelBuilder.Entity() +.Property(e => e.xxscm_maxpod_consumption) +.HasPrecision(18, 6); } } } diff --git a/Models/UniApiEntity/xxDiMaxes.cs b/Models/UniApiEntity/xxDiMaxes.cs new file mode 100644 index 0000000..65f4af1 --- /dev/null +++ b/Models/UniApiEntity/xxDiMaxes.cs @@ -0,0 +1,14 @@ +using System.ComponentModel.DataAnnotations; + +namespace CK.SCP.Models.UniApiEntity +{ + public partial class xxDiMaxes + { + [Key] + public int ID { get; set; } + public int Di_Batchno { get; set; } + public int Di_Batchno_part { get; set; } + public int Di_Batchno_price { get; set; } + public int Di_Batchno_NETprice { get; set; } + } +} diff --git a/Models/UniApiEntity/xxDiMaxes_Po.cs b/Models/UniApiEntity/xxDiMaxes_Po.cs new file mode 100644 index 0000000..c4008b7 --- /dev/null +++ b/Models/UniApiEntity/xxDiMaxes_Po.cs @@ -0,0 +1,11 @@ +using System.ComponentModel.DataAnnotations; +namespace CK.SCP.Models.UniApiEntity +{ + public partial class xxDiMaxes_Po + { + [Key] + public int UID { get; set; } + public int Di_Batchno { get; set; } + + } +} diff --git a/Models/UniApiEntity/xxerp_MaxbatchNO.cs b/Models/UniApiEntity/xxerp_MaxbatchNO.cs new file mode 100644 index 0000000..14d45fb --- /dev/null +++ b/Models/UniApiEntity/xxerp_MaxbatchNO.cs @@ -0,0 +1,15 @@ +using System.ComponentModel.DataAnnotations; + +namespace CK.SCP.Models.UniApiEntity +{ + public partial class xxerp_MaxbatchNO + { + [Key] + public int xxerp_uid { get; set; } + public string tablename { get; set; } + public string Remark { get; set; } + + public int MaxdibatchNO { get; set; } + + } +} diff --git a/Models/UniApiEntity/xxscm_ctrl.cs b/Models/UniApiEntity/xxscm_ctrl.cs index 44e0552..ab35730 100644 --- a/Models/UniApiEntity/xxscm_ctrl.cs +++ b/Models/UniApiEntity/xxscm_ctrl.cs @@ -25,6 +25,6 @@ namespace CK.SCP.Models.UniApiEntity [StringLength(50)] public string xxscm_wms { get; set; } [StringLength(50)] - public string xxscm_rmks { get; set; } + public string xxscm_rmks { get; set; } } } diff --git a/Models/UniApiEntity/xxscm_inv_det.cs b/Models/UniApiEntity/xxscm_inv_det.cs index 7c00350..6270419 100644 --- a/Models/UniApiEntity/xxscm_inv_det.cs +++ b/Models/UniApiEntity/xxscm_inv_det.cs @@ -107,11 +107,11 @@ namespace CK.SCP.Models.UniApiEntity public string xxscm_inv_project { get; set; } - public decimal xxscm_inv_extend1 { get; set; } - public decimal xxscm_inv_extend2 { get; set; } - public decimal xxscm_inv_extend3 { get; set; } - public decimal xxscm_inv_extend4 { get; set; } - public decimal xxscm_inv_extend5 { get; set; } + //public decimal xxscm_inv_extend1 { get; set; } + //public decimal xxscm_inv_extend2 { get; set; } + //public decimal xxscm_inv_extend3 { get; set; } + //public decimal xxscm_inv_extend4 { get; set; } + //public decimal xxscm_inv_extend5 { get; set; } diff --git a/Models/UniApiEntity/xxscm_maxpo_det.cs b/Models/UniApiEntity/xxscm_maxpo_det.cs new file mode 100644 index 0000000..17ded69 --- /dev/null +++ b/Models/UniApiEntity/xxscm_maxpo_det.cs @@ -0,0 +1,42 @@ +using System; +using System.ComponentModel.DataAnnotations; + +namespace CK.SCP.Models.UniApiEntity +{ + public partial class xxscm_maxpod_det + { + [Key] + public int xxscm_maxpod_uid { get; set; } + public string xxscm_maxpod_seq { get; set; }//任务号 + public string xxscm_maxpod_nbr { get; set; }//订单号/合同编号 + public int xxscm_maxpod_line { get; set; }//订单行号 + + public string xxscm_maxpod_part { get; set; }//零件号(父件) + public string xxscm_maxpod_groupart { get; set; }//原材物料号(子件) + public decimal xxscm_maxpod_qty { get; set; }//订货件数(小订单消耗对应的大订单数) + public decimal xxscm_maxpod_orderqty { get; set; }//起订量 + public decimal xxscm_maxpod_orderqtyd { get; set; }//订货量(吨) + public decimal xxscm_maxpod_orderqtykg { get; set; }//订货量(千克) + public decimal xxscm_maxpod_consumption { get; set; }//单件消耗(千克) + public string xxscm_maxpod_createuser { get; set; }//创建者 + public DateTime xxscm_maxpod_createtime { get; set; }//创建时间 + + public string xxscm_maxpod_month { get; set; }//合同月 + public string xxscm_maxpod_Model { get; set; }//车型 + public string xxscm_maxpod_texture { get; set; }//材质 + public string xxscm_maxpod_testandard { get; set; }//技术标准 + public string xxscm_maxpod_vend { get; set; }//供应商编号 + public string xxscm_maxpod_manufacturer { get; set; }//材料厂家 + public string xxscm_maxpod_forecastone { get; set; }//预测1/数量 + public string xxscm_maxpod_forecasttwo { get; set; }//预测2/数量 + public string xxscm_maxpod_forecastthree { get; set; }//预测3/数量 + public string xxscm_maxpod_forecastfour { get; set; }//预测4/数量 + public string xxscm_maxpod_forecastfive { get; set; }//预测5/数量 + public string xxscm_maxpod_forecastsix { get; set; }//预测6/数量 + public string xxscm_maxpod_idention { get; set; }//标识新增或者修改新增为A修改为U + public string xxscm_maxpod_site { get; set; }//地点 + public string xxscm_maxpod_domain { get; set; }//域 + + + } +} diff --git a/Models/UniApiEntity/xxscm_pod_det.cs b/Models/UniApiEntity/xxscm_pod_det.cs index 34f1008..29cfc72 100644 --- a/Models/UniApiEntity/xxscm_pod_det.cs +++ b/Models/UniApiEntity/xxscm_pod_det.cs @@ -7,115 +7,42 @@ namespace CK.SCP.Models.UniApiEntity { [Key] public int xxscm_pod_uid { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(50)] public string xxscm_pod_seq { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(8)] public string xxscm_pod_nbr { get; set; } - public int xxscm_pod_line { get; set; } - [Required(AllowEmptyStrings = true)] - [StringLength(8)] - public string xxscm_pod_modtype { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(8)] - public string xxscm_pod_site { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(8)] + public string xxscm_pod_modtype { get; set; } + public string xxscm_pod_ordType { get; set; } + public string xxscm_pod_site { get; set; } public string xxscm_pod_domain { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(18)] - public string xxscm_pod_part { get; set; } - - [StringLength(50)] - public string xxscm_pod_desc { get; set; } - + public string xxscm_pod_part { get; set; } public decimal xxscm_pod_qty_ord { get; set; } - public decimal xxscm_pod_qty_rct { get; set; } - public decimal xxscm_pod_qty_std { get; set; } - public DateTime xxscm_pod_due_date { get; set; } - public decimal xxscm_pod_price { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(8)] - public string xxscm_pod_curr { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(8)] public string xxscm_pod_loc_um { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(8)] - public string xxscm_pod_um { get; set; } - public decimal xxscm_pod_um_conv { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(8)] + public string xxscm_pod_um { get; set; } public string xxscm_pod_vend { get; set; } - - [StringLength(100)] - public string xxscm_pod_name { get; set; } - - [StringLength(8)] - public string xxscm_pod_attn { get; set; } - - [StringLength(8)] public string xxscm_pod_ship { get; set; } - - [StringLength(2)] - public string xxscm_pod_made { get; set; } - - public bool xxscm_pod_confirm { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(8)] public string xxscm_pod_buyer { get; set; } - [StringLength(20)] public string xxscm_pod_buyer_phone { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(8)] - public string xxscm_pod_status { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(1)] public string xxscm_pod_qadread { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(1)] public string xxscm_pod_wmsread { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(1)] public string xxscm_pod_scmread { get; set; } - - [Required(AllowEmptyStrings = true)] - [StringLength(1)] public string xxscm_pod_mesread { get; set; } - - public string xxscm_pod_rmks { get; set; } - public DateTime? xxscm_pod_createdt { get; set; } - - [StringLength(8)] public string xxscm_pod_createur { get; set; } - - public DateTime? xxscm_pod_updatedt { get; set; } - - [StringLength(8)] - public string xxscm_pod_updateur { get; set; } + public string xxscm_pod_groupWareMaterielNO { get; set; } + public string xxscm_pod_componquantity { get; set; } + public string xxscm_pod_measureBaseUnit { get; set; } + public string xxscm_pod_returnsItem { get; set; } + public string xxscm_pod_curr { get; set; } + public string xxscm_pod_status { get; set; } + public string xxscm_pod_ctype { get; set; } + public string xxscm_pod_companyCode { get; set; } + public string xxscm_pod_purOrg { get; set; } } } diff --git a/Models/UniApiEntity/xxscm_tx_mstr.cs b/Models/UniApiEntity/xxscm_tx_mstr.cs index c9f8d4d..a5145a5 100644 --- a/Models/UniApiEntity/xxscm_tx_mstr.cs +++ b/Models/UniApiEntity/xxscm_tx_mstr.cs @@ -20,7 +20,7 @@ namespace CK.SCP.Models.UniApiEntity [StringLength(50)] public string xxscm_tx_po_line { get; set; } [Required(AllowEmptyStrings = true)] - [StringLength(18)] + [StringLength(50)] public string xxscm_tx_part { get; set; } public decimal xxscm_tx_qty_total { get; set; } diff --git a/Models/UniApiEntity/xxwms_rc_det.cs b/Models/UniApiEntity/xxwms_rc_det.cs index 290adee..1d8d030 100644 --- a/Models/UniApiEntity/xxwms_rc_det.cs +++ b/Models/UniApiEntity/xxwms_rc_det.cs @@ -26,7 +26,7 @@ namespace CK.SCP.Models.UniApiEntity public int xxwms_rc_po_line { get; set; } [Required(AllowEmptyStrings = true)] - [StringLength(18)] + [StringLength(40)] public string xxwms_rc_part { get; set; } public decimal xxwms_rc_qty_total { get; set; } @@ -41,7 +41,7 @@ namespace CK.SCP.Models.UniApiEntity [StringLength(50)] public string xxwms_rc_vend { get; set; } - [StringLength(20)] + public string xxwms_rc_ware_class { get; set; } [StringLength(20)] @@ -55,7 +55,7 @@ namespace CK.SCP.Models.UniApiEntity public string xxwms_rc_po_um { get; set; } [Required(AllowEmptyStrings = true)] - [StringLength(8)] + [StringLength(50)] public string xxwms_rc_loc_um { get; set; } public decimal xxwms_rc_conv { get; set; } diff --git a/Models/UniApiEntity/xxwms_rt_det.cs b/Models/UniApiEntity/xxwms_rt_det.cs index cbb589a..a3b8855 100644 --- a/Models/UniApiEntity/xxwms_rt_det.cs +++ b/Models/UniApiEntity/xxwms_rt_det.cs @@ -17,7 +17,7 @@ namespace CK.SCP.Models.UniApiEntity public string xxwms_rt_nbr { get; set; } [Required(AllowEmptyStrings = true)] - [StringLength(8)] + [StringLength(20)] public string xxwms_rt_po_nbr { get; set; } public int xxwms_rt_po_line { get; set; } @@ -38,7 +38,7 @@ namespace CK.SCP.Models.UniApiEntity [StringLength(8)] public string xxwms_rt_vend { get; set; } - [StringLength(20)] + [StringLength(200)] public string xxwms_rt_ware_class { get; set; } [StringLength(20)] @@ -52,7 +52,7 @@ namespace CK.SCP.Models.UniApiEntity [StringLength(2)] public string xxwms_rt_po_um { get; set; } - [StringLength(2)] + [StringLength(50)] public string xxwms_rt_loc_um { get; set; } public decimal xxwms_rt_conv { get; set; } diff --git a/Models/WmsEntity/TableSchema1.cs b/Models/WmsEntity/TableSchema1.cs index 69c6b92..5f28270 100644 --- a/Models/WmsEntity/TableSchema1.cs +++ b/Models/WmsEntity/TableSchema1.cs @@ -1,9 +1 @@ -//------------------------------------------------------------------------------ -// -// 此代码已从模板生成。 -// -// 手动更改此文件可能导致应用程序出现意外的行为。 -// 如果重新生成代码,将覆盖对此文件的手动更改。 -// -//------------------------------------------------------------------------------ - + \ No newline at end of file diff --git a/SCP.sln b/SCP.sln index 25dbcf4..54231fd 100644 --- a/SCP.sln +++ b/SCP.sln @@ -34,7 +34,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "库存查询脚本", "库 ..\Users\asus\Desktop\20200820唐明亮.sql = ..\Users\asus\Desktop\20200820唐明亮.sql ..\Desktop\SCP项目\VIEW_PRODUCT_DETAIL.sql = ..\Desktop\SCP项目\VIEW_PRODUCT_DETAIL.sql ..\Desktop\SCP项目\Wms数据库设置.ini = ..\Desktop\SCP项目\Wms数据库设置.ini - ..\..\..\Desktop\常熟定时更新程序.txt = ..\..\..\Desktop\常熟定时更新程序.txt + ..\..\Desktop\常熟定时更新程序.txt = ..\..\Desktop\常熟定时更新程序.txt EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "权限库备份", "权限库备份", "{137B27CF-8F56-49BB-9705-060995312716}" @@ -51,6 +51,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CK.SCP.GrupUniApi", "UniApi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniApiWpf", "UniApiWpf\UniApiWpf.csproj", "{28128F6F-8EC3-4C15-8AC4-475F6AF6FFDB}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebService", "WebService\WebService.csproj", "{612FA92D-3A80-4E83-98CE-383533A0BFC6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -85,6 +87,10 @@ Global {28128F6F-8EC3-4C15-8AC4-475F6AF6FFDB}.Debug|Any CPU.Build.0 = Debug|Any CPU {28128F6F-8EC3-4C15-8AC4-475F6AF6FFDB}.Release|Any CPU.ActiveCfg = Release|Any CPU {28128F6F-8EC3-4C15-8AC4-475F6AF6FFDB}.Release|Any CPU.Build.0 = Release|Any CPU + {612FA92D-3A80-4E83-98CE-383533A0BFC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {612FA92D-3A80-4E83-98CE-383533A0BFC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {612FA92D-3A80-4E83-98CE-383533A0BFC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {612FA92D-3A80-4E83-98CE-383533A0BFC6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/SCP/Admin/profile.aspx b/SCP/Admin/profile.aspx index b64be09..a6c5672 100644 --- a/SCP/Admin/profile.aspx +++ b/SCP/Admin/profile.aspx @@ -20,10 +20,10 @@ ShowRedStar="true"> + ShowRedStar="true"> + Required="true" ShowRedStar="true" CompareControl="tbxNewPassword" CompareOperator="Equal" CompareMessage="两次密码不一致!"> diff --git a/SCP/Admin/profile.aspx.cs b/SCP/Admin/profile.aspx.cs index 87b89d9..db970ff 100644 --- a/SCP/Admin/profile.aspx.cs +++ b/SCP/Admin/profile.aspx.cs @@ -7,6 +7,8 @@ using System.Web.UI.WebControls; using FineUI; using System.Linq; using CK.SCP.Models.AppBoxEntity; +using CK.SCP.Models; +using System.Text.RegularExpressions; namespace SCP.admin { @@ -28,7 +30,8 @@ namespace SCP.admin TranslatorAgent(tbxConfirmNewPassword); TranslatorAgent(btnSave); TranslatorAgent(btnSaveUser); - + tbxNewPassword.Regex = ScpCache.Config.密码验证格式; + tbxNewPassword.RegexMessage = ScpCache.Config.密码验证提示语; } } @@ -67,7 +70,12 @@ namespace SCP.admin tbxOldPassword.MarkInvalid("当前密码不正确!"); return; } - + Regex _regex = new Regex(ScpCache.Config.密码验证格式); + if (!_regex.IsMatch(newPass)) + { + Alert.Show(GetResourceKey(ScpCache.Config.密码验证提示语)); + return; + } if (!string.IsNullOrEmpty(tbxCellPhone.Text.Trim())) { user.CellPhone = tbxCellPhone.Text; @@ -79,6 +87,7 @@ namespace SCP.admin user.Password = PasswordUtil.CreateDbPassword(newPass); + user.LastUpdatePasswordTime = DateTime.Now; DB.SaveChanges(); Alert.ShowInTop("修改密码成功!"); diff --git a/SCP/Admin/profileExtend.aspx.cs b/SCP/Admin/profileExtend.aspx.cs index c7573c0..d2a1b23 100644 --- a/SCP/Admin/profileExtend.aspx.cs +++ b/SCP/Admin/profileExtend.aspx.cs @@ -55,6 +55,7 @@ namespace SCP.admin } user.Password = PasswordUtil.CreateDbPassword(newPass); + user.LastUpdatePasswordTime = DateTime.Now; DB.SaveChanges(); Alert.ShowInTop("修改密码成功!"); diff --git a/SCP/Admin/user.aspx.cs b/SCP/Admin/user.aspx.cs index aae5323..273a1c9 100644 --- a/SCP/Admin/user.aspx.cs +++ b/SCP/Admin/user.aspx.cs @@ -255,7 +255,7 @@ namespace SCP.admin // 执行数据库操作 //DB.Users.Where(u => ids.Contains(u.UserID)).ToList().ForEach(u => u.Enabled = enabled); //DB.SaveChanges(); - DB.Users.Where(u => ids.Contains(u.ID)).Update(u => new User { Enabled = enabled }); + DB.Users.Where(u => ids.Contains(u.ID)).Update(u => new User { Enabled = enabled,ErrorCount=0 }); // 重新绑定表格 BindGrid(); diff --git a/SCP/Admin/user_changepassword.aspx b/SCP/Admin/user_changepassword.aspx index f4c94aa..5436bcb 100644 --- a/SCP/Admin/user_changepassword.aspx +++ b/SCP/Admin/user_changepassword.aspx @@ -36,7 +36,7 @@ TextMode="Password"> + ShowRedStar="true" TextMode="Password" CompareControl="tbxPassword" CompareOperator="Equal" CompareMessage="两次密码不一致!"> diff --git a/SCP/Admin/user_changepassword.aspx.cs b/SCP/Admin/user_changepassword.aspx.cs index 2826396..54fbdd2 100644 --- a/SCP/Admin/user_changepassword.aspx.cs +++ b/SCP/Admin/user_changepassword.aspx.cs @@ -7,6 +7,8 @@ using System.Data.Entity; using System.Linq; using CK.SCP.Models.AppBoxEntity; using FineUI; +using CK.SCP.Models; +using System.Text.RegularExpressions; namespace SCP.admin { @@ -34,6 +36,8 @@ namespace SCP.admin if (!IsPostBack) { LoadData(); + tbxPassword.Regex = ScpCache.Config.密码验证格式; + tbxPassword.RegexMessage = ScpCache.Config.密码验证提示语; } } @@ -66,9 +70,16 @@ namespace SCP.admin protected void btnSaveClose_Click(object sender, EventArgs e) { + Regex _regex = new Regex(ScpCache.Config.密码验证格式); + if (!_regex.IsMatch(tbxPassword.Text.Trim())) + { + Alert.Show(GetResourceKey(ScpCache.Config.密码验证提示语)); + return; + } int id = GetQueryIntValue("id"); User item = DB.Users.Find(id); item.Password = PasswordUtil.CreateDbPassword(tbxPassword.Text.Trim()); + item.LastUpdatePasswordTime = DateTime.Now; DB.SaveChanges(); //Alert.Show("保存成功!", String.Empty, Alert.DefaultIcon, ActiveWindow.GetHidePostBackReference()); diff --git a/SCP/Admin/user_changepassword.aspx.designer.cs b/SCP/Admin/user_changepassword.aspx.designer.cs index e9e2a1f..52bcc78 100644 --- a/SCP/Admin/user_changepassword.aspx.designer.cs +++ b/SCP/Admin/user_changepassword.aspx.designer.cs @@ -2,16 +2,18 @@ // <自动生成> // 此代码由工具生成。 // -// 对此文件的更改可能会导致不正确的行为,并且如果 -// 重新生成代码,这些更改将会丢失。 +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 // //------------------------------------------------------------------------------ -namespace SCP.admin { - - - public partial class user_changepassword { - +namespace SCP.admin +{ + + + public partial class user_changepassword + { + /// /// form1 控件。 /// @@ -20,7 +22,7 @@ namespace SCP.admin { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -29,7 +31,7 @@ namespace SCP.admin { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUI.PageManager PageManager1; - + /// /// Panel1 控件。 /// @@ -38,7 +40,7 @@ namespace SCP.admin { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUI.Panel Panel1; - + /// /// Toolbar1 控件。 /// @@ -47,7 +49,7 @@ namespace SCP.admin { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUI.Toolbar Toolbar1; - + /// /// btnClose 控件。 /// @@ -56,7 +58,7 @@ namespace SCP.admin { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUI.Button btnClose; - + /// /// ToolbarSeparator2 控件。 /// @@ -65,7 +67,7 @@ namespace SCP.admin { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUI.ToolbarSeparator ToolbarSeparator2; - + /// /// btnSaveClose 控件。 /// @@ -74,7 +76,7 @@ namespace SCP.admin { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUI.Button btnSaveClose; - + /// /// SimpleForm1 控件。 /// @@ -83,7 +85,7 @@ namespace SCP.admin { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUI.SimpleForm SimpleForm1; - + /// /// labUserName 控件。 /// @@ -92,7 +94,7 @@ namespace SCP.admin { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUI.Label labUserName; - + /// /// labUserRealName 控件。 /// @@ -101,7 +103,7 @@ namespace SCP.admin { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUI.Label labUserRealName; - + /// /// tbxPassword 控件。 /// @@ -110,7 +112,7 @@ namespace SCP.admin { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUI.TextBox tbxPassword; - + /// /// tbxConfirmPassword 控件。 /// diff --git a/SCP/Admin/user_edit.aspx.cs b/SCP/Admin/user_edit.aspx.cs index 955b652..81d4934 100644 --- a/SCP/Admin/user_edit.aspx.cs +++ b/SCP/Admin/user_edit.aspx.cs @@ -200,7 +200,7 @@ namespace SCP.admin item.HomePhone = tbxHomePhone.Text.Trim(); item.Remark = tbxRemark.Text.Trim(); item.Enabled = cbxEnabled.Checked; - + item.ErrorCount = 0; if (String.IsNullOrEmpty(hfSelectedDept.Text)) { diff --git a/SCP/Admin/user_new.aspx b/SCP/Admin/user_new.aspx index 42d1fa2..758a15b 100644 --- a/SCP/Admin/user_new.aspx +++ b/SCP/Admin/user_new.aspx @@ -49,7 +49,7 @@ - + diff --git a/SCP/Admin/user_new.aspx.cs b/SCP/Admin/user_new.aspx.cs index 9e17659..aefb464 100644 --- a/SCP/Admin/user_new.aspx.cs +++ b/SCP/Admin/user_new.aspx.cs @@ -10,6 +10,7 @@ using CK.SCP.Controller; using FineUI; using ListItem = FineUI.ListItem; using CK.SCP.Models.ScpEntity; +using CK.SCP.Models; namespace SCP.admin { @@ -64,6 +65,7 @@ namespace SCP.admin DPL_Vender.Items.Insert(0, new FineUI.ListItem("", "")); } + tbxPassword.Text = ScpCache.Config.默认密码; } #region InitUserRole diff --git a/SCP/Business/PageBase.cs b/SCP/Business/PageBase.cs index 5e44e61..920d3b4 100644 --- a/SCP/Business/PageBase.cs +++ b/SCP/Business/PageBase.cs @@ -236,11 +236,10 @@ namespace SCP protected string GetSelectedDataKey(Grid grid, int dataIndex) { - string data = String.Empty; int rowIndex = grid.SelectedRowIndex; if (rowIndex >= 0) - { + { data = grid.DataKeys[rowIndex][dataIndex].ToString(); } return data; diff --git a/SCP/Common/MailHelper.cs b/SCP/Common/MailHelper.cs index 6872f9d..a8cd960 100644 --- a/SCP/Common/MailHelper.cs +++ b/SCP/Common/MailHelper.cs @@ -9,6 +9,7 @@ using CK.SCP.Models.AppBoxEntity; using System.Text; using CK.SCP.Utils; using System.Configuration; +using static CK.SCP.UniApi.Controller.MailController; namespace SCP.Common { @@ -20,8 +21,7 @@ namespace SCP.Common { using (AppBoxContext db = EntitiesFactory.CreateAppBoxInstance()) { - //if (_count > 0) - //{ + StringBuilder _buffer = new StringBuilder(); _buffer.Append("SELECT b.Email "); _buffer.Append(" FROM VenderUsers AS a INNER JOIN "); @@ -33,10 +33,26 @@ namespace SCP.Common _buffer.Append(" Roles AS h ON g.RoleID = h.ID "); _buffer.AppendFormat(" WHERE(h.Name = '供应商' and a.VenderId='{0}' and d.FactoryId='{1}' ) ", p_VendId, p_site); var _userList = db.Database.SqlQuery(_buffer.ToString()).ToList(); + if (_userList != null && _userList.Count > 0) { foreach (var itm in _userList) { + + if (itm.Contains('@')) + { + using (ScpEntities dbb = EntitiesFactory.CreateScpInstance()) + { + string[] arr = itm.Split('@'); + string vendid = arr[0]; + var vend = dbb.TA_VENDER.FirstOrDefault(p => p.VendId == vendid); + if (vend != null) + { + break; + } + } + } + string mails = ""; mails += itm + ","; if (mails != "") @@ -46,7 +62,7 @@ namespace SCP.Common string mailbody = ""; mailbody += "尊敬的供应商
"; mailbody += "你好!

"; - mailbody += "" + p_Content + " ,请到供应商协同网站" + ConfigurationManager.AppSettings["ResetPassWord"] + "打开查看!
"; + mailbody += "" + p_Content + " ," + ConfigurationManager.AppSettings["ResetPassWord"] + "
"; mailbody += "



日期:" + DateTime.Now; MyWebSmtpMail webmail = new MyWebSmtpMail(); webmail.Send(mails, mailbody, p_title); @@ -54,7 +70,7 @@ namespace SCP.Common } } } - //} + catch(Exception e) { LogHelper.Writlog(LogHelper.LogType.Error, typeof(MailManager), "MailManager", e.Message); @@ -135,6 +151,71 @@ namespace SCP.Common } } } + } + + //富维发邮件 + public static void GetPoMailList() + { + using (AppBoxContext idb = EntitiesFactory.CreateAppBoxInstance()) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + //var _list = new List(); + + var _list = db.Database.SqlQuery("Select top(5) * from TB_SUPPLIER_MAIL WHERE STATE=0 order by id asc"); + foreach (var l in _list) + { + + StringBuilder _buffer = new StringBuilder(); + _buffer.Append("SELECT b.Email ,a.VenderId as VendId "); + _buffer.Append(" FROM VenderUsers AS a INNER JOIN "); + _buffer.Append(" Users AS b ON a.UserId = b.ID INNER JOIN "); + _buffer.Append(" FactoryUsers AS c ON a.UserId = c.UserID INNER JOIN "); + _buffer.Append(" TA_FACTORY AS d ON c.FACTORY_ID = d.ID INNER JOIN "); + _buffer.Append(" Users AS f ON c.UserID = f.ID INNER JOIN "); + _buffer.Append("RoleUsers AS g ON a.UserId = g.UserID INNER JOIN "); + _buffer.Append("Roles AS h ON g.RoleID = h.ID "); + _buffer.AppendFormat(" WHERE (h.Name = '供应商' and b.Enabled=1) and a.VenderId ='{0}'", l.SupplicerCode); + var _userList = idb.Database.SqlQuery(_buffer.ToString()).ToList(); + var grouplist = _userList.GroupBy(r => r.VendId); + if (_userList != null && _userList.Count > 0) + { + foreach (var itm in grouplist) + { + var maillist = itm.Select(r => r.Email); + string mails = ""; + foreach (var mail in maillist) + { + mails += mail + ","; + } + if (mails != "") + { + mails = mails.Substring(0, mails.Length - 1); + } + + MyWebSmtpMail webmail = new MyWebSmtpMail(); + webmail.Send(mails, l.MailBody, "采购订单提醒"); + Console.WriteLine($"发送邮件:供应商编码为{ l.SupplicerCode}"); + } + } + + } + var _ids = _list.Select(p => p.Id); + var _entities = db.TB_SUPPLIER_MAIL.Where(p => _ids.Contains(p.Id)).ToList(); + foreach (var itm in _entities) + { + itm.State = 1; + } + EntitiesFactory.SaveDb(idb); + EntitiesFactory.SaveDb(db); + + } + } + + + + } /// /// 发邮件给采购 diff --git a/SCP/Common/ReportHelper.cs b/SCP/Common/ReportHelper.cs index d1d75fb..fd39a6c 100644 --- a/SCP/Common/ReportHelper.cs +++ b/SCP/Common/ReportHelper.cs @@ -67,7 +67,7 @@ namespace SCP.Common ds = GET_ASN_PALLET(p_request); break; case (int)PrintType.PALLET: - ds = GET_TB_PALLETS(p_request); + ds = GET_TB_PALLETS_BTL(p_request); break; case (int)PrintType.SmallBARCODE: ds = GET_TS_BAR_Small(p_request); @@ -92,11 +92,12 @@ namespace SCP.Common } private static DataSet GET_ASN(HttpRequest p_request) { - DataSet ds = new DataSet(); + DataSet ds = new DataSet(); if (!string.IsNullOrEmpty(p_request["AsnBillNum"])) { var AskBillNum = p_request["AsnBillNum"].ToString(); - ds=SCP_ASN_CONTROLLER.ASN_REPORT(AskBillNum); + var CurrentUserPhone = p_request["CurrentUserPhone"].ToString(); + ds =SCP_ASN_CONTROLLER.ASN_REPORT(AskBillNum, CurrentUserPhone); } return ds; } @@ -127,6 +128,46 @@ namespace SCP.Common } return ds; } + /// + /// 本特勒获取托盘 + /// + /// + /// + private static DataSet GET_TB_PALLETS_BTL(HttpRequest p_request) + { + DataSet ds = new DataSet(); + TB_PALLETS_BTL _pallet = new TB_PALLETS_BTL(); + if (!string.IsNullOrEmpty(p_request["AsnBillNum"])) + { + _pallet.AsnBillNum = p_request["AsnBillNum"].ToString(); + } + if (!string.IsNullOrEmpty(p_request["UID"])) + { + var _ls = p_request["UID"].ToString().Split('_').ToList(); + _pallet.UIDList = new List(); + _ls.ForEach(p => + { + if (!string.IsNullOrEmpty(p)) + { + _pallet.UIDList.Add(long.Parse(p)); + } + }); + } + if (!string.IsNullOrEmpty(_pallet.AsnBillNum)||_pallet.UIDList.Count()>0) + { + _pallet.IsDeleted = false; + SCP_PALLET_CONTROLLER.Get_TB_PALLETS_BTL_List(_pallet, (ret) => + { + if (ret.State == ReturnStatus.Succeed) + { + var _ls = ret.Result.DistinctBy(t => t.PalletNum); + var dt = ConvertHelper.ToDataTable(_ls.ToList()); + ds.Tables.Add(dt); + } + }); + } + return ds; + } private static DataSet GET_TS_BAR(HttpRequest p_request) { DataSet ds = new DataSet(); @@ -135,6 +176,10 @@ namespace SCP.Common { _bar.BillNum = p_request["AsnBillNum"].ToString(); } + if (!string.IsNullOrEmpty(p_request["FHLX"])) + { + _bar.Extend16 = p_request["FHLX"].ToString(); + } if (!string.IsNullOrEmpty(p_request["Barcode"])) { var _ls = p_request["Barcode"].ToString().Split('_').ToList(); diff --git a/SCP/Default_FW.aspx b/SCP/Default_FW.aspx index 1d5e7fa..1bdc4c4 100644 --- a/SCP/Default_FW.aspx +++ b/SCP/Default_FW.aspx @@ -15,19 +15,13 @@ body { margin-bottom: 0px; background-repeat: repeat-x; } -td{ - font-size:12px; - line-height:20px; -} + .login{ } -.login tr td{ - font-size:12px; - line-height:20px; -} + --> @@ -40,8 +34,8 @@ td{ - -
+ +
@@ -53,12 +47,12 @@ td{ - + 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

;U9^Jff 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 Su92Mp0000308h2~lX}Edr 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�^yAXu%KnK+*#a2DO&geo{dMTGozWx1hx1YO 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ȿ!&U>6=jsvIb!VTBa&uett!0L827s)te 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

kD26c+yr5PG0zn>{`+*ZI1UP@GbqS zmJjHFFbahn=#cuOJiMX3qkN7|cYPPWE7_@U;`p{apAqB}Z?vn5jH%<3ebujcN=_aV z@IKT&c9)YR{dnraAFn_!=%BUh&*;~rn}Z|CsXFS8IBI!hBVWKOX`S95{jzh03@v_LW?Hru=x7>N5U0xRSf&YwbT&q3#O)M_?!7qcJaF^9@mU?(pQ-92?zxN~AH%`2^4+~co} zr}J?8D2K``fBoXf+Pg}-ePYK?b-jD4qLr*%tLdq0emku!lgPfZnwgV4$Pjr(%0rA3=U&e>@Q72hC*PJLO*8xLJ z=vb4mpvS~9hNXN|45x=C>N}5~$DHuFIF&D$hmfBa%^{U1U#_z-kvU?_!ySj93y;g> z43K4&AS>gvF3;-m0?aa=gt;oSYeCAGxiBF_o_~y+cp{J}VSq3uo93pm=6zmRC}X`X zf0ub&O84xP}iq-2DOhNV=HyG={wJCpSa=_(?6bJKrIf%W8sd zdA23uVe3H>%TXctvA!vdrbd_yaZbxw)&A4*Md~&H<7%Q$~J&hcL zN~72(ZFN)}jjG)1tBmUP*7#rl>osNfUy!3iPHX?9V1M&P!LIyoi+A7tVX?D#x767z zR0f|tt5*N|zpj-&`TsQfFFs!=_D;15C@foZdByJhV8!0}$!g)@@A7ffRogpQvA_D) z%cBqf+vUR3UoMV2Ck=J@ruur#Dvio`X`^DxH_L_PE5*WiR2uJpRj|Wnnhg&%^QfF@ z;0Ii{s05EHgh4+JAVFcM--)=;zjPLpI>b^rdTpR~a27};B6#~Hdm>@U&;kcUJBC@7%P5PY-PO z!yOxRhE~#mbTNFE9oJA>$8eW@sV| z`;xU%vh@e+w)tq?p8f1A+yC%|l@>Yb{aXOPJ0BK(XCa39&bsu?*y3=${PO_aP<~H? zZhcWs9cm!gLTl;fRjaSBSbKZVPM_~c-C>s<55p)(EK1nleflK)OP7J7(NXd zs2FeL?Gu&SD#o!J>a=s@QJML3qenDF88+mHaZ(k}o(v{l-a!r-1X+$?J|;mqV;|i z7ZdCbN)`-F-`Q4P7-R4os4X`dyluH=J?Vot%VW^{4F;9Jt1#Yz&y4^+1IL_$vDm=) zRX&u%b*wU=AM{9hp~Lv)jpL;64ZCj4v2cceLk6)M`U)ejf#!IO!k*+pAIQTZz9S>B zEE;spacs)Zjg(5Mu7yM|fX`o`j_ zjkF+aODCMJpe-*djOQVpm(tU=DvC>sJnGoTP0FGAr~mYnzTG+XeEsuy%EQML8f*mQ zV4f<;uNzYM}2?3x!YC$tX9-kDx%St)vT-CRc(9k z*gpB{xg8z1v|Qv=MGojQK9(tTHh=oK!hB5d#{j}f4{vvJy?r`N()uqyQ@nD1(ur@W z&dG!@hAXO0~MgQk`op!8=r(CY4JJXpesC zMXs|u%hdmUEzncnOY^Gon1Bf4xa)d$q&`YvJS=e|mXmsym67f)R2MRk-!hLnkL(O4Fg~I5lP_dJ0wb))*sI)4TVrOMs>s$X| z(C9V#+bi3n2M->M{`o(DTUq@x&lhPTUdC|$NQQgwtl|D38t(ghGTi@odGwoqE5rR) z(Qq#`3nk6W&GpLo>Km29t@q1?8*gbXRVi^J&2}nNPHZCy9oXxHNty zTm}@EUDqMr6Vmxo`aEPtE)^0RO$1VVth1q^3$n=~F_Vj$pmDnBA@9@>B()xHq)WnW7JnR(I}52ykjZ5NXCja3Qrv90hAkQH_crXt z4{q7cub$i9CwofwvK@CI@qs^OWAMqBPx0tn3rI%~;+lnkP>X0WH zs|OY~>kl_=)wGhX^G97ebDSAt+XC?CbMcxF*dm@kUSk9rVJ<^jTvcGIkvPKc%j+e#wKt{5Jh&y@VhP5AAcb=$N#;J@m^5#YgOh}D9oUACQ zy@s2F#M4&1V7>!aZZ_P|Cohf^X1Wsz_2w_*R9+n8rOfb`mfM{){Cn+y;=B&sJCO&z!7m>d!RNo|lLYKMQZC-xz$d!g*h5mqu>&3I z72ZgyFr}p&RJ6~Zu=6YklSBO>x8&fNWsX5>W#}&-09HJuno& zKX^irXc)^Y98!G!j&#_wgU=pY_wYnAI$_9Pa(o@b9iW}@Lb{d3rt|8l{!Uw6>uFqO z2frqs6}ch{`jMxjy5vhL-j^hw3Ld#ZBO>||tKz&2^id3UjRC$}4nyR`orTNDE*hxF zf6(pPpu_Gn{Z#y1SSNBnGVwe)Z)g8TAYKz`$tQ`bAGIgXM-}7!I{N){ZH}RS=(p(2 z#|=*#LD#fn`j3yXWCTGX;#zv<<$B@fO_YTAMnHDjE6Q8tr(M(b;4hi^EZVt- zd*l&Bz@K;m@!Er2P&^r^2j$X$=uLFU>9T?mW@UFeIawJJNS_LtZ@9-G+F_pmEbAx> z5PDi{Lmnb!D>I7#*5KL&`8(pWw4anHzo!p}o=XFLu zlRqn?(9;LVc_Tm@y&1#+=aEkl^Nejb1GPyughLtOcZQ+E*}MaU@La6Cew78`34wm< zgt5WrVaeg9Z7eeqxD)&V6Tl;XJq;9x&s;WTxUVc$e3#v)0FAfwLw4CuWw0Ne@XR~; zY5bijXSyn?{S`+V!$x7fGb#*hRO-kLH^ZjD6L~w5&&$aMyUehP+{&mptPP9fsw%cb zhwh51C!sh(7z}qCAFKBsD$7H~A1LlXbL9TGG&&qu|7c|0qiSP#Qm+o$OETQ+Ys;OD zQomod>fpF>+~3~5Bg1`v^!D3tkN?>}3x>P2D)^`2b@P12{q48^%I@9!H}?M3zqIeJ z{@kuEeqs%4o5oZ-`&Rh~utHDgf(l#Kz_PGz#^-;oJu->KsFej6Q2jCjs6UB>D((`J^<+=D}U5+LfSPm zTB5rMl5ClLc}$S^p9OL~AC%S&)v#z|5$7+IVj(7fK((Tm$(e^#Zh$go01xuRRX0^z z^t*e9Qv1;M$Hw17V2K$+zM!i)TS>Kp3B=@V-zhf`#v z`ngPo-j*Y}J|f02^vRCI#pA)(0pv?%WE_~)KY%Q;to|%}Ugxg@T0m=&U0Gi6HsgH1 zF(i3YpP@V&PdOT25_-J>NtY8qr_&h2yj%e%akTdk<8`dME{xeF4!ZD36&ktlAuoT< zTnoX1kDD>?#1Aij^7ulQ^z zL)!wp@1}n2=_Uwgr{UWD0pVTNoKmjVCB7zX&x`cvJ<@u59Q?rzJUuY@ecS-KR&dfC z#v?bke6g+qL=36XgY++*U>t|%+4Yyvd3MgfB*O$5k;^~-sPY3oehImmRFOf+=iJhB z>!B_cFXX%VEbhaxU6oC|gFYvHAuVQ7`5YOykwWtO&N?!A0r}@g3ms&D)+xg;;OUb; z`X)3XK7q$OuaZzQs(<-2;F6cHOt10Jeeh4{VG51%Ixo_~gSP1q!ZR-J4PhxfyH4@c z6^l#SnfP$pfxhoIlJv(Z2~K=q$od=DrK7+$@BkA3a2>;9I7S{fj5c1sX=@K|YJ6#E zIU#w)KL{X@4Ajl+V)J4Mw7kreBl2H8+qK8f_Uy&Zk+rx{&F*`*XGh1Uws*)kyN~?S zrF_=3ulD8gsxSHH4_%JHFUf%sdPW}F74(GDR%l!JA#*n(;j@^J7y4W&8M*nwr=2Q| zl2sSAWL>OVb*T|C?-vrcSc~pO2#s(dq4?q|t_F%%U1NNGby2u%jkOhPu7j)Al)tgI zY|Rb%x7KYz*ianl$}-$hmFr0T1q0kaAKL4MqwkvYxdG?lnSrhH0veM?tO*q7I)IVu zU6B0wu&5`$1%!d3G1_n3NpE2+;N_N#VV419h;n2wFDyX{$5q{3h>2!~pUaOMapL44 zl@-kMx(EZ1GTt6L2NJIt8qYExhCkt1h!V~P`Vco0IdSFhz3{m{k3q_dA<@jkJdb>s z(C4o_5|@Wae}*n$;y0Tv54rd}>1>kO>$z|d(R|$}peb=fw#O0r_Q=2ce{?#s!;^s> z9QS3g^GF>po)w|nY8ub~82seg#pPExSG#oW*f9aAY!QhY2bNU^0(xi?fT8#Xg@0q>%M^x6Sk$t>pkYqYM1%&y{6u+%PT+JAQy3Sq(NEF(WFp=906=^Q zo&so?)LB3!x;&&hb^~8tP1NpB%sdZhqMOHaAiNwU<(DAGQ!W#2rK$EIT3_I5@dakj z*=gbnMu2$C&5JPc^Bq^|G|4nY8x|qq7$lQ6s7c**FPO_W0wjueqe>lm%=0;v`dq0I%aTR>Uxekhf3HJTBljB~(veCl3K~Q;v8M9o4P-rZRptaGo(eWx!Z3sZIJW zd@93y@HQ*GCgUtD6oNbPPp;jV)B=wkc6Tut#hQ^p@ zn0R@{*-!}YvW)jijic^yhhA=(-Ey!}4Lj!;=h9cu2K-40h_7@~lJW05>*R?X=t)Sv z>}dLqbWEG{=0=*v9v_}52X*MYLpi*Ds7vLNl_$n!{=hNlA(uYo;p2!PToV`Cl|e~MH|$lsOX`3aS` zeUwfb2&wZ=G1IxxAXOD`+TlQXsJmmZV?<+^R|l(B?XL^h+^r2Z6sBv1S4QB9)rM;d-?V!Fitwt{9IyFx zt-mGOHSudY-%uI}!8%tycIiijw)M)#)-UY~_pDz$uwF&}@_}{Bhw>j<*Kywla{HxY zH4DZ8_-UM#m%Z`*j@ijGvx9>Jd$Ik(%wJCT=ls||n|-T10sq|oiP^vLFuP};+10Dh zeaHPf*Z$I8yYbj=-rTX(t-f)3Ok=!NOFYv$v`V>el@iYb@@?LMm5Lgu)M-$jmud=J z^@<1Ol^a6BUuq;8LBpHrZ@p`U*MBU-{co7v`L5aOjj$8Xz^Y#9ZIaGWRTw+-_kL*h z;CIcgza7%66ZwKZFpcO%R^DNt3-K;YL?F2WdjGkQk4x#rH~P|buDQ-YpqjuW<$NGc z^0J%7q{d&yc!oP=OL!4DOZ_-Wn(b(isiZYpvH1@Ot_3$!6t zzf+z1B?v7GBhUvAfH*;vp|-MU&CL~`MEx0eZ)eI$^l72($j*cBKCoDeyg@I!Mg=Vl zTqmSUaRMG$2opMY+A)M@7BrUu@>5$LX=DlQ{T-% zao&cg8;yKm*5AQb2T!R!KWKNXdvNUfNfTSB%U9(q`MfS-I`r=bd)j5csO&F;oIL1( zHtMG;dcn^);k;+$rX1WjV0=WL5GYdGdDJ6qI4>7zd?7MZ2YJ?B7t!yKA``&{;QjYJ zI{HI6#X|q3A0w+9=IXCg>0E{=M_v}nM!JMkW7Nwa@`ql1#F3Q(3vk90@2jF==SyS9 zTo8#Hr1Tk;6^=gEiKiPPj;U?om zbe9F>jXDqYNB?B}kL6T8epA48r@BhCuLMz6rQ?Q4*u_@+)wM7BeH_)|O?hw(yIkdF z9^~`#iDi$75v?E9vE;)qS^XHh{A2a)F?=!l)YrLTN1w+XtN(+36OS>S8$HbhD=mPF z!C!Aq^oc&i(~pYF(Dg3{M7aZRFkPRAsZJ%Ybl{Hw`8cCG5Tun7#XgJDyE9CJ+WTv)E}eb z@sUA~$6GMeLw^cDoriiS$c=sR7;$t}a$Xv!<2h~G$3E2wpQH6L0G5$$@`e>+f{8o? zCYnk7EJS)I;D7woAkuppAW}tElSJ}(+hrXU`}1KBV=vY!)BW6Q89OT^66qb58iAoH@*BBIeRg=MBdEJ#TphQ?;vb zH}pX-!z{-137uXsrGhnUMO$Ag+qI3l8vds}rHKvXi^2gOqv;~E!AM>61# zY#oZK`(LluwYJ6-9{H8sZrh5sQvU_G*h)%JpSw zZuNGpe)Dd-ar5dPl=MpST|Nx)o9|iS>O-@}qFL+M?BKE4>0Vecp*-r8Norx! z3b)^p(f&JTiM}s|v<~HVL`K7+sA?46a>xheC+))sHMlSPJp;5@)*9wgpLKXZU;NJDKTj{cWHq6g%v zE_<3l@7>4sFvfr z-3ao*MuQkT7|^p&pe@Eb>(dkRR0bCULj=16<+Ww2Zmikym)lw(v^7wX-{tvCfHWZT z$n^m>w*M?H2b2%l=@+R_$o0hn3t5lXLeur4@-yM01NWm3(b1)3^j>G0blgw}lO7VxlSlgWlTPSYJdhbt;Dv{4FNX&P zKka}zJOj|m@wyQD*cxIcb)Et)0B<9-iAlhSSXAKT0n?;iiZiu&|lK3O=5v@^a&T9-xz{G4Sg`klXW&V?_89?^srh z7N^NWOq11t*U`%$(x4miVO*2n^A)&3%FZ(~QSOU)CUNp4E{~FGEMcd6tKYDw*Q|L(bCt%G_90)8pqqwz3#j(sH3GBb+RCCW>l#C^(Wu$h`m$}VEm^HrF}{b)XN-JYr`?IhRZV+PKl5TC zjLK51)%`}UzpWfPEbcfhKQS`PZ0GTbcp_D#ude>#$2v$w{P_d z{lV;m`>VG7)nogOzg1psS7SvWk9pnH z3FwNskaW;_M*&lGqK*k!gZLFL0f{hzlk;*>nRYVVml`tCn`Nt%3*laC%!+=p0~) z8jlNu@u<)l4GUdAf+u5MBmS^2`o7|N-2Ri{-yIbOS`?2u1u-s+OI?l53LkgJMGX)o z&I}a$l?4sQqvA;2SJQHMtNhxJ*T%p6<(BgMw_YknCRbhh9NbpxhlPISyM@ozUoSpB z{!Zzu53iO!e^M;>pC48V-J@!?(ylZr#agLRtuJgf>NoFn>TkaORpZ@zzpP)W{klFr zcv35zY}X3ClWL(js1%Fi%9xS6wp1#vUMW?#wu-gQ)k38>D9R8ojCMXN*wMBO_qH^z zL6A!2PVnkY8SQVFtz4IQs+FS`W;>so9dD~HdQumIzbY8oWfkb=J2KwiH(R|P+64yw zvC?!;RXC+j4Vi^gb6LjzniU!=O0P+o$t1UkiwcSDM?c=l8767e;*(K$i2ubD(TV;D z;c7Z8T<62m^=vpWxt{hVStMU<{4a;ZL9ToG$zvY4hIjHuK#yFepsXXF2PqyIr)k4g z_)R5v8Mgp=Dy38%O$_(zIm5kZ&COM-YGHHy_=UQT+76SU*W)z!*b=&-II31f!o1{@7yfcA-7lQ=JH3cKu~Y+<6jTnQXR%4h00w^-WLqD{v8-batkTI%0b28OQ* z5-E*LcP2s%l%ST7)(2;HzC59k#3} zzZ5=$Di@0)CNx~aX8hqh&(wD*OQ;l~bcV6&{WdRK@?Qk84CerK%c78S_-C1> zj1lq9)8m#@^^#>^GW6=qg7)VMyu~Mvs=#> za2vMq`Yq4*svmqobDW{ZZs#v8!pL6_k1EU58+)M)?#cOGyZg1SZYWJ>hO4fqy9kr~Zd67>n zc@?WK`y0z?6O47LQ|1KEHyV+yUtDw&>m!doR)eCTebR?~cRjTorwd0-8*A&fcJH1o z-@K{0ddn8Jz^lS50k7oT%}r}=tP9tyxxQfy_Xk|q*iab$5Z=IDhfe;rHQ}l?R#&VJ zuI1fjxr%cd=;f|LOZbX4R+fF9@3mUq4!nG+oUx6iundx)vSYN;?P=On>rAF2``C|KOke0dk277gG>hOr!(wMPg4N zL_YOphG_4T4#9QV6)_|-Kg|h9o#--%Z2hLNFw4g21^a!GJ%D z?4IcvGLvZK67S4>vI|G!T1h_IR-oiI5_kp?pnLc9lNVB z%2E9a1HIS}>7g&mXotpSQF+Hj3(wBi#^rH+j4R1T6S+I?x;AF;Vz@L)EP7y#r{&k2KD9QXk%oftK!tc za9?|g;l91_4-2++v+%h3qvFo~!_vXydgudKU?9T5$G3y+M;?Y>3UD`0a_L>!B=-ZY1GUTaV`D`|Si?@9?Dzznc57zqg+YK; z#S5e$VX=}vALlz((s_x+81+P}ga@>~uwua`eizpDG%!j**|>u zs{QcBf>lp>8Il%+Bc+rK&H>$INF5|pTTZU}9LMmJ(ViC4ELwTfvqn!Liy-7u=81>* z1(3kJA4u+bkc;;*VC)OFnig)uwg!9_v3XGbw3YJ>_oQpdz*ttsXqP(`cNxgbAM3=+ zE_t$}@U&QXLX$8LF^;@hEV&__*A4N)tWH8`xaNW~kS;|C=J{Ee@?ucu6@o&&&ZM0O z%)GHrzA|`y;mD<}%7qR6-g&+Z$kJ8dKkmALq4Mz3Id5mgfi7Rd8StIEbMjNTzZ6en z$jc$}C%;%8_wu4Tuk&a~K_z*-+(I9-B!iDdF*$LJ0ls6&uCa&FULrs@V2l&rXi&iy z2D4*h0v{u(>v<4Xgz@5A1Y|)b^b4wPgE151&p@E}b_F0)tzctx$ zCyX6nUXF$_f4Xz%brTl+wCPwDfb!^npnAaAzIT1yR+sBmAwSVEi`~4kV%Ie9aWtRj z-#1qm?aG?w7Wu29yDcOBiVXdBw{K6j5A3wVCnmYUps~#jP1;*%fABy@l*7kjL=d`6 z=^{bYCCE)7Zfl{fgSJaG_p(XH=q0=#=Z>7eg1ZC?TpJC^UYm* zdD3+bV?L8yxej4KsL$XBoYfSZ32+E}lu!%;i(p6+6AW9{K#b*#v!P!(uT=k2pm43H zpr3|(SYD2h<0L+p4zEc0Y+8lyo!0_ZDw2yAtB^){v3uR9mu+!DV^FemrV5ep-Y0ZyZE9&I2sM!dgiK0oKF zK4qrEuQYCqWuT8s!v(p`k^IB*cveEW?;Mt(o zJ8oBtHq_WLs>q@*FK$#zH}3XIZ@u-b_`NrOUAVjX>*DzMS)sdgQ0N_=7DheJ`b)_y z%(ciZtX#L^)q7T2*-!)0BI@XwjkiCu@ln`u_r^e-vWvB_Zetnkwt7b;l97G7Z?^k| z4EL|h+D9USt@u_Hw|dPAH{P)V&&+Sh(AQ*AID8)Hm{?Lz)qro!HM5PoW}ElSYKt+? zNd@LNxwDQNE`(~`YWZQ1k37!oYxhD=M+u!J%l8b3IPp%`873!Q zJ57=`VFdTi<}po|qt3x>=zOY+A?1-UFC&m#i#zUD<{IwR#fF{AaA$WZ?1~Fi<}|U< z`Ky|smzNs0EZRDgx55{jb=&YGg<2@+dTF6ys~kyGJYiS1R&8r*&FXw^ZaC5!g*N0Y zUkbhe7yX;pm+XJ{cOKgR;m5b_Z(ga|-Q}wN`o)QTwbN2NoXB`7P#X%1l#nh=n4x@^ z22bOO5K;je_*g*9kpr&m9Nphqu>ZB>|KI=aRr~ul>t2R04tw^|^HUkz66E?XH9aO&A@p!qO|0~piL(Gp!FMEz3;|(1U2c-Ni0_E+-H<(L@*V_ekEFg|C z2s)3Ce$|IVz76I10Mv`iCYq!J@{C5we2Dx~o*B=t39hG5mh;-{T<~@-WCx39=vinp z@hi;h95xs6LVmTGGc-|O>D>_CHe%RI0ousV=MYb;vQfqep}j>?<3%tzKtqiWvZj^tNYZiRm zaKs|{=*D<5$lWj6gi43br%-u%U4uao zb&dGB%m>%KevTjS$PjG1;pm{bfVA}$@+?_<_b5~g1E=cUcf13o1Ac$OpyF3GU-4-sTS`2^nBRAY5j|?MtoyaAhzQ)k@-k!B~cT{%V-3jjO zxZ6HBw2rX7f8cKS=s4ivk?`0$azUp%jI;*_qTjccu)Qb5JqZ5R{+?*|MGK!3=j(Yx zgP*i}q*s0?r{M-ylzR$h+aB?ZhtTJZ_Vd6Mo#P>$`b`qyTyS#L;p&prse7&YWk)## z!~Kc<=A$R!sJyp-@}A@$#)6PLRFmgE6&d4VpA3-z|nK5X?22;IOa-)2C5v=Gs2$)V! z5x=%lx6QSh(_zRHKjg-)j|Cwg%26t7P2DKjlK3pjc<1Lee7~J zN~-8_5UaNolSC!h%r|sJD({{Dj9#mAsO1WArH&!a8tG5TG zdk+qauibxISZ(YSTZi33d$(H{wmRy{JvEkrCM~H?22pKu&DQQL+vbg-t<-m{bo!O` zo;|U?2IGQ%(uzhe$=S(ju3KT_o)y+_X+qca>7I=--1i=b-FI&r`q9K}D>B@#zHWsp z5B(E!b6VZy)*{WXQZ?Jw?FDsDK;% zs!?x5jvg`r@6>7lVVu&B&{IXibhIY25-pXu#40m?iH)XhAn`^kI z9rv&pLSsrvc?2wiuB!_ zu-<-n%ietLrq#3<+}k_0V=a`tHO$j_9u&<^HAm$C!8=#&fBEBkcI`^js>I2km4=5`U~f!_to) ztl9tO$G7ax6`rFk+MT7UeZ1SY|Mru8h+KDbbwV44x9TB07Zw+?4#Wj3rcS&%42waZfPvT{9d7$mGD3M{~ zixUj@G_NQnMf3$rEbH9%OIR`@=K$@xT+!H(44zql_bkM`NbCIq0}%s~n~A=|t8k1+ z;-p`mbN2<95MwPo-oY_zUUbIJV_1Yx7k=7EfFbFIi0@3ylncH1pQ6ANpImg6neza} z5j+DayNPESlqeYPm1ww+Eg0?{<)gMk86-0@H8j7l{%P-N-6D4Q{f2{RoICPRUN4i< z=~~Ogu*)PKVL{td*vR&e+HSb>**C(El;7bApY|PSvD>!;`S*`F8Fgyij^;{?ZO3@y z2R(WgYJZZ`b;uY=pyKE&@+k~?jkBDL$g}m&rw1$4CdSfpj&} z(wY3pFVIiZ;nG)9JIF)O1?q@(Pqg%x8ST)|q&XMhA@un^-h?|3kb_UtaWkmX>RL5s z@%?);+#f%+-+cVcDzqKvk(@5)LYV@Ad*3qa*8M#=HE!0!U9La6_D{su4qKa_rF;l(A_GfvGEk5x?9MHb}Y9n zV-*9I9cOlwIYEhxVNP)7=Oc7!eikIT;(q{cxQ|&os9pHY_cULobU9QxNf!`*;5&g7 zc3yY_U5g22LkBbm`gUJ^4g zwbX}XG;`EmvxBNz98oxoGu;7sUZHf;Fr8PrOjOi|o5or<^DKMU-H{)U@5*@RsJz!% z#@0=2{i!d=+~p|zu%xk~d?@!=*vfE#Thuy}OkFhbkh*Ybq6XI35+c z<3agkG$X8~oQHztp1cz!yDpI|2 zY+DOo+UCMnwouzwo8kEd#i^x^r4fJWqbpxw1&-a;R3SC_(*l?{P{1_{dpB0dEaC1QbVn#Edip(ofPj znL39zPIWZ>DjcLc1>Xc?tkX^?69$lPPTT~^Gw=px;}cAUyU0p|?$JY({S2UIMv`Q3 zc|9aZesRQ0{27`Y5KNrMpF@)%@rVO5Wn^qxka51O$&jORWs!TplKT`ici945| zJBr44?}gsK%Qoz3g6L>crC8}gh-1FwkQ&nPQtgc#kN7GNBt-%WvNk;#qq(1!xA5F2Do zd|v{PT!!v4kjjF*$R%{cJn1jRb47cmuWI7QP;q*I=)61>Rp^Gj^J2W9e4v27l&4P+ z`GuQBYI~$5&&bE)<3KU#3mE7am+|0%KeP>+Y`Nh2GKYrw!w3PciU_eYd!i~v8-<@d>L?(j&P>|0v>Vfeh9bumu7wGex zw&SM0+BI)r=Y1TGV&Tta70SwaM@+idwX%h+6GBUZMY;$1J zTBh3#S3Z`f8w|Wit-*K87p=OqY?Xz@@Yn+<1N=p7O<~=%X11fw$o5WpwtL#Mlm6JA z?zQZT?PGg!*tTZ}ZTsZup?&mZ-=6NC*yG(}`_<>$_Lnm5K6!Sab=<(4v9}W!B(_JP zpD>Vx>K`NxI^m^l{y8_bx$JrF$SbKK)5$cVFAV*W+HArhpG*@^(BH<6?rDRm z4upJeZP001A4B`(NbYfX^LtO}700*EL%oHYTB&Zb{wE0E+*VtFpJWenT%?;p{dk%) z5Gu{<%`fOvlG%;+SB0F)!uS;0;Tcdij2V3y?43jPcNr~VZcTConrVpgCCI$dHwA~npu?!g91ZB#)c0H@4l>+;slTX@!bqpW7YZY*Y2C28RJE=3x^1l1Y_VDP zWx#~inWP_*^sqHV60?D|I4?p$ry^{tvM zD?Q5&_^}JUyjZfe)v~QDvvI?a;wxa!a~gxpXZ^ygjL1Cg548YI)Thz~4Nm@?M|Ktd zxF(%{i6Y~ZARi8I4|1S6P-ht6?e@Tqj{A0S*mYOtqnfGmSDWpr4V`H0*xzs4{z1o% zHI{S~kC8kDx+Dyv|Kzl9M@K#J>dAQTTTf%BKO>(A6H+H&K5PmTq*CQE0PUTl{tc}! z7aHvJm)&i|n=A{BlC7xStSxbTzwGTO^@WfFTGV(@&>UGfF&Wr$6Y5$xEVNV`ZDq!Z zZu&2E3Pc&5oqpge40eumSm?^=4==kL6ve||WT!FAZ_Fs)g2tDrn=~3b9cb8^t0M5h z3FYpDlMy(ZQEt$9*_dGauE8m0Eqga;rXGeXZVY zK5Cp6*Xr%#QoZ-|No}5!-((4r~y>6x49<7yHl{=-Q+PlT)g&!0?+k3nC z>2KBw&p+)K+PfzOzHeFd%GKnl#qaWF!5+T8XKz3F*lw+TYSsR(bxsGeZCbXueq`(G zU0dB4*xHqWZQd%_{kK~7=A)-}ZSApDI?t{9V%xggdwz^{B;#3aSIX4Hy|`h;jhj|l z+tLKD$!Y(w+4B#>j=MS%%J9jFy9uke{L^w{j?16yo4xpr+2J$u7wI{j5Roz3x9$Z4 zf8&noLOq^cc})gcr8{w~FoY3ggKPp1R)Y&tq5D zJI6fZ!?B{HBXt0pKxMx^4Q8z_v|7AqVSI3O>PK^$buFf3q#koOUimfa97j{LP?~2i z_QH-ki|LoiOSJ1-9b5d?muhxHcp{nq$4`&!|G8bXXO(5ER!Y8`z=FmnW)_$U;Gwci zc0)q&dEn_GazfRZUk6#wp!jA61xR}7!FLWp(O~2e$HJHA30D`Zc5ShuL49CG6%u{Ekqo%evt?R za$}5_8CI8?YA+bk1S`%BVdYPqiH;q2-d5ai_k9tSULfUcymCpywbGn{l%D`OH1=o( z88EvepO-JXZd7XsPU*c&(4|R+Yjgx%)M=J}7GhfR_wqqc`%-$0A9U~G(RD~NMexfQ zmKIkIN|WV(0l?dhrkBuN7F=GnFZIE21Uj_cP)yYtWmWyU>*SGMa`^E`=)H}4Wb_Bj z=*3JSfj2jtq9N=^xRVA03`08^%D!_hzaP1dh=J~g8nn1s9DNN`9!dW$8+sKlq)7Fq zy!fQ!K!$rTnkcM7NiX`zjfqh9bOYhC;Hm;Cn)1Vok(0F>fO;q5+k{w0L7xJbK^N!* zUC58?6SVHFC4MLxZk!Jkrgb@oyL_x3Xg$;wA-h#9w!>H`L@>%NO!@KY zx3K%m2?TB+vCGS~;w7&eaIz`b-nkDqpV z=DJ?x*=ZTgGQ?>5JgeN3KIsdIC&oED$W0mAT8_DK%^$nKR6)okpzoq<*h3*+jrG^!7ZR_m9>m40zt?FqZ(aid!rS34?6N8ugOb;Y);<{;yD)RU-#aevq^ zm&=2}pg7X-=R59udoATLz2hEcC&!Bo_lgYnQOn@#rvhB#&?U)?MH>D2d@=(zZw=!zuGRepB)rV zclvg)Q?{M$hVAYyTDP!im5oiStuEM52KVt{*^c+5u5sHI7fx(pVPFf(Lt9xL*v7TK zz42(r-hcF|U0Z!(Wf}Q{gF_pg99q>*tmEnCsA8%(Lh4d9h|C||aGem4o4g5pFbIKJR4yz)-ai8wEd#sUG_Yro;(_1~a-~89 zcRE!*O@v&TfjkF?X?B8H9?_qp^FD+(N5%liQF)HB-?}yb8TX0dt}?SIV1eP2G7QGn zSNc}F>z`L?b$Zs*AjaUme|Tzp2gi2W>S#dk$w)u7-MwSccC0P>{eu(R-a8WAiFMrA zm!_QQO8^>8kS|Vp_WYn@+q*6MlaF`p|MF*#?WZp~R$N=NrL7GuG|E0n^9@*z!TNw4 zccFcO#Y}XG>=HPs%LtEBH=FKCc+w+*-4y z+D-4Iv^0!mq!u5TSaIT^`zy^gfKclSxkJ zgTVy}?H%JvWyioDYm8#a=>3`cjBVZ_SH>yue8O_mUG$iMxcv2HVJhG3X97tUN7|Fh zoEhk#{M-;k-;@_UF{aCPBhdZmiS+(2knEmsC=cN80Z<)4;5+Wh$91Q4ENlms59&xLi?#fFZY#H)V1CyGwW&yF-~n`O&q9g^1+jJb6gz1^IXva3bX_O>p?l z)xAT$WGO5MbAr4ekw++B407Vw)+n>uk2+_Fr1Bg?bO6Fh1LDZ_%XpoI2V|_`gate6 z80yt(xG6)IA&whOvT* zp1+BnU3A&vE{aFESd2B|CwdHbxa(gz6-UKUc__nwSRU60rBStCvTDCDuJq*Z77EpF zaa8FP$0ac>%WyAt3&oLIU_pj^KN#-gZ`p7!P8se68SYxKuH2~G+TD6#^+u!6sMiaf zc6}_v-7wrwli^;dXs|37_>TL^&C+P~wc>E$ZecL26^DB-3gey63*&>G!bnEYfT!{Y zWp$RC^&7XWwfwH_mEN~6_aEBFA8puYe`WUKQyES##&)<u+yz^|TCnT4 zx>l*F(pn?y9Q9d;4FPYAb*|5^FVQ42J{r3ad*R=XWT!0 zVW-EcCrxO1!+jvb-4}XsftP@NkG|qC*fG9&%Pu>|$ER)EmC=481MXN0tsNQYJ9~$A zaM4V8}3XrVG(hW%oA{ZYO#e)@mNOt|M1D4{ku>0?c?W1cDlW5!=ppr z(OtTE-Ku<&Mw8g6!x0?Sw4d{0EtJ&1q<1&|(S44`#h}Fsi|4d}zOYSP z04#o4AYTAJkxI7e@`4*y{UZ!_8P(`K$?FUAVa{;p`O0?GU6PFp1{0Olf)=#V=#7^$P-egmx2ooeN0aosh_MIIdEFVd)$l+ z0OfcU!yP_8!Cyf0HNmB4>|{X=vNA)(F*tZ)QRXSj%Q}r&A0eK;hhgLGm~i!bts;C^ zQsI0%y1JlwfurrZ&UV)0*yDyJJftHxvKTjT2~REO27b791B;D7WSemfm3bD3hCl7!T@O&c5x)s=6M;Nw z3&{m3J4jnndBaT*>C$gpqCdu4aE`o!z=}m(ijVcDYtp&#$72Yr0KF{IgLry<$(@ul zq&b6u+e^VIMNj>;cX?^riI0cmMV_=#jB8#_hkGo;-NRJwWc&w|ES|5DX)NPr4Q(K6 zKZ=#Y*grg93rolD<&z0&5GduVGMLq{GDhX#5j zM~fBtG5qGD@~&vSfu<}O%HmPR4=Qb0Jd|rd)sMSM$B8Zf-n;r&1;e`%`dYTTj~g-Q zC)6+c72 zo^N9K6r7Pp!k9L$LNl1;lMqPbPG~!MAQVHHn*$is7}4RGWktZssYK`b1*003_XgMv zocvR}R-OBN<^~vU(S`~i3=1;k_*@v};%1PmbW#)neVx4MVqjLDl<~O`C?{m{soX*L z$RU{&=3|NHDEj1g*HeV_iAi$vkm@iJPDlceGcd&?$rEJpxGY(^h~Z9`$1uJ+COalx zd%P!#d_ltKXN=kSDI@Hs#Ei6#$s4adD29g!H_X}R@o%?_ExP3N2W^0Q1P2-~IU&I_ z@7#15c>N+TZ3209&1c^H^KP0mWt;~$e5;-Bw)6ZuIN;N9{s}ndMPv%{P}4yNntP(* zPO#{R8Yy?g(Xw&7<>Ly+KUk2iY>e%}gMEAS;IZA>km26mv#yM;(x_#P zg`qVUM{>uuuu`;*n2K4Qy@U zg%yvUSbuxl2Ha6+gz%~r@{AoX(7XLzD_ni3go}O?zh~zF&L$?hX6t$9r~iB)zI%h3~jG?3f*Qjoj&TFA01C7jo3f z|5O(|qwhx}HHn1dl8p4CRa~O;V`HN6BayKhLjAoOP!5vASO1b(AwnkS&fdQDPEOUv zmTc+v4Xeq3=b6GmCp@mfg6%&jP*BP^lP~3#dcrOV<>7hTlOt;^E!xUm_2r`zf2k0Q z6AYfI26YiYCrowZin?st1f)wd^-BQGz7wg82JNo&tifC9Jjax+*E@!LGaBxlXt=B1 zT(+pA?C5z6bNRJ$V22&dj3?p~^Em*ow2M9un2dcuqE23+Jy1@L2s4lYo=@U)4tTkU z#}!UNDx+NIgS@jeIY@G!;qx_te9Y@~4CcYOt5r+3qB-x*wKcnSWkqpSf9&e+wRO99ZB^6az#r@4m~|Mp zn8PL|LkF}kWJ?g*32j7mp9AJWZrt9IKL3vL{?S6+-j^(n^{TLP7HegDuU3>_@sjQR zW~3)=Qz+RT#V@!Eifh^rwCsFGv~`vJg=FXTOC@B?q4!7khb9mJ9S7srZ+>~h5CKHz zK~5hTq%<)v?>F2$;RbB%I662oZE4a@=leN^=1Of35F1U$r7W87l8HHy~GT8S^4tp{X%V&{2gN+ z*_?MicyS@c<2R%OBp-F_RuXht*N;ZrV56-H!|fmW6VhL)`_RWg7eirF;yMs=4#xVP z3Oj=UF6E^SQhsCt6`lzYE}fb!Pdg&# zSa-e^pUCxbn{oUW_uVYg7? zZR_?e8}2(Y-1lY-cg`5pG`g?P zVB2^L=*R~W88=q9UiGTAm*2Mi+6VUZdd=+a z_rkOAG)#`v`={tM@B`2?SkdUqJYUA!%+*MUN}b-pn}77@!{>pgK7*6=xRNF7D8MwW zGiqza#_Ggya zac9BAqAeR7#mpyPA(LUiAOkZ4I`rD-<_;Fvas zJ8v#W*v7`XEndIsZ!_mDx*o1F_#*4K4wNryAH`-yY54Uww@P+)uP8_V=*arVCsyBF zx8*xGt=H;U=kO#fMlY+YMCS%sob+Esu+Nb)?1t8vx(cG}%c&i_sCFxY2w3mwv zcVS*X>_YoX<}lVl80O`9NqKw%tjaToj{JPA2#b{YHYGkSh4bSXa(bgcL zl@s?ec>w1HAE9TdA1`NI)FabHhC9K?65IJV0_vFdLEg#l5M`W&yo&InGZyuv6}Um< zi;uVf5i*7OjvjrzjM1(M9phO16DHMT^bqHHi|;uaI3Gyodet1K_Q&T4Io6xWO}xO{ zX41E4gJB|LPx<@N?*zp8jjPBYrceANJwGB-0CY|p^ymhT{yhbH@wAjxf!s*oXfS>c z<%i#JooKx+U~EUdx*tQ`+enN{?b7=VZVm%yMTIdk7}EqqB~C}EZkZz_qt_*i@W_*L`>yw^LKJz>VeKOQ zI=>hwfG>tSpZF@v06uxKZ@gcFaouHeJ>(#j)B6uKIJTvQn%&r3@t3DEAMx^3zVUu- zV@cJ?%eSib;QFfFxf)JyJ>LtTfeShlhuHp+4Oz$|Rb>X$wTm*5$B(fq{QEMn|Bp8} z?SHnmWPeKr_urI}{YQ>9`-u$lpWt7LVYtgp`=gZw`=iyxXoUiS99_x^1X2{2!JFrazEViaQ+?3$k8~+R5xQ>Ypnf0_Mjpao0OO}k z2ENmn#u7FJ=(j@NGZhW@VEmJ}Fv<`mijdDU`Om>jzH=~@!DVK?NHTJBK_rpVU8hOu zLRj#}>&VMVLX0r|1%C*i{G~K!G3XMKAe(z!B~dH^Vf@CpIhfc@Aa{|x-zyW?WNJ1z`5BN@A6li}{4N3*WV_ggUBkLDQeqhz>Wm*IY=URb`_ zu$l~acHDQ_amR4qsY-(?xeRw^>Do%kR<4y~=obr1vYI*5a_}S=?#Da9aHj=%rAr~p z*Ub1f`;uHmjE`PeVdoPo9LpWZAX6#5J~8r}>o!<@WT(w{?XZ8%PIgDuda`ZZXV0yB zaBAIlQKAX^3pS{3+HmQPwHvS7PWzsH`Prg9|EO)P?Uv{;{z}&G^XA#IjCZNz;i=uf zvt#4dvF&{|FyC-j{gumOt5n8T7A~(3?cwVO_U>C>+SS#kRvhqIk%6j9W4jt`uV0iA zpmLR)HeSDD<1264sJ3q7PRj~1@(Ud?WkJs%PNC@G)de$*dv@sSiy_k?i~lg`Kuht1 z(!lc|@^p;XG3DepqAN5(2=lvv5rU6juPDEohL9$p$}2ZWnGl$DfqZ-fm*p&myOVhN z$wM;SH{Edm=_k8((&l7D(VFYaR*~V}dZv2R0tSP{nWz~4oSQF-nG|suVTcRy4s-MS z?E?drA9qz5_~Z@WtmPS1jQ0BKs?}G*?#w_V)< z3pM|Qms|{K=ZhPO(jp|6Xc}TXY5fh_7zVUqf{F7w42yPen{tCeAziDT`mt%>rH$=H z`TN_lX~RH1+ng-kcHpftxB*9=xab5Oi?81p$aE~%Y1qAtH#?cX$QN0Xi%}xi4N!NH zO^83~HX-`X5Se0ljN^tN0ZyJD zxN)swi-u~K43Rbut|Q6G@VG9+_O1-|6&cF@O=Z>3rVQN$<;kbuXh$o}im>L7f<4(j zw3g;bDi1#Ch6L>?Yd?7)|Ac-W9BIbo-&B9TqqcV}Jw5Gq?XmKB+7A+;~RF{d(n+j0yyemp$+{W|n(=3#$d1ZxLpgbdTXF9gU)!wnMgoCWXm$zZ1+ zCca7ky7ZfRD%Y?(utuFV4Tk$xG~A#1BPHIxTsAqW!W{A|y95(jASERv7c79&RDb|N z#t%#&=~VL-dR1%6tpq23PVX3K61o9Jn^uMabMYR2Ha?*8!%)U{;G~nr0acdLB{|Vw z!aU5%lE41Ch^)v1N*?BK)=FAay4@m*^y7M^9R3H12Lz1%5HoQn800-04g&e>i4Kz< zx%PV+#FN)dehK|A#wXX~aNTB^@bxgM(}I{DPdppW^()1RJ$( zyceve?$PJ*hvW`q9?K<;7jT-4bY4Kmi|C3YwF~AhzRB+2WfxlCMt*D_l;4q~@#@#^ zGOy{+zu&I@E~A}vZl_B=jC(ig$DAW5j!XX67*$3~!|HHxSRO46Dx>9oWw_F>j#qls z(Q;SU!nICixZEj?RyrDqyQT3$w=k-9OM_ysTr3VM<5GXDCH-&5aObEzv*Gf!@N&A< z>yxAMyPwr;muK8}!!zy{cid~srLhe6f*bDFsEwi>%5dNNyf8k=8}5n{xf||V4@^eB z0u^!i+-&z#v*T?IXc+EVEFd|we2;zYfsI!0*|5;G;qjr_&X@k;IcxKRI9RCS%XJ$z zuUlv7E!!)9$DW)#v?rgGZTqjc?dYo`JKisam*5>%W%MS?5R-QF!^8FFYX!q>EU{ zpuY^{=Q_hIGsOxO9N))(~&%OF(0LM*a4uNJ0ogaQ6xigSx zGP(%j%`@tJ$Nl!5>-N)+cI-rxd%04w`r3*cSf|?uzBs|C^hGt3BA?w#JE4p&Zj7o; z0c3HG82>>)W%M0>E#z2`QsnNzfwgycUFVJUb*pcz`GS<)H$H)r?*4~K^S1#>A+$B+ zF*P|(gWq(J9PG5SE4^~(hVLk~_YV9qW#El3R&9iNM4nPC4_{rMlCBYZ3 z1zWngWs6tW{l*{1%bpqSF9Fv_PVSH=F23M8Z_pQIF)!)EuW668Elwiff*8ceMtcRJbqum5#2`w1 z0#Z*g%)>Ft$WI{;i4 z(pf0CAUY2CV>6&kZs>bIlzh5Ak`ejei|@bOJ+yzZckK8tL52O-M=iN6g&owmB;Q@l&g*UlcWW1VcIxWF~h0n}93w$oa#C9Kt8aUx>@0%Z5%9 zs$UVLyr`dmla&0P;Y3k!^)m_A-`wy##y<>Y>2u6_h_wfUJoSMN!84VU=fb#`yY|d- z*Yo1$BI69@XYIp0Ta_z07=uz;S4^NqPa#co^La$SG$~iKxRL)PO~Als;_4?NX``Fc zz{}UU!~qI(a{q}AVF4$+6R$~Jz{od`j8*g*XsJK1!|6Ydn?fMEawaqrCjqSqz8Ovd zno^(kqwFLcg%{10cy3*DrW@-R;zBpj)z2`{6^=2F5g+1dFN7zfzwg(`#qoKL-E&kv z{8h%4(V`6Zm0@MPJS-1Z1|=s8&;X{#_Y)cJmY#8M)NS!b-8SyXaKFt*t%Kpd{b|kiWw@X0Xm)}Y!@XFx`f|yZ zugh@16AgFi_ULJ0EW=$El?-=I3kbZ@mCSeCUz6c}MS-fOBN^^H!Ek5CoyiQTePPgC zH`};pg|%BYCT(laZ0`%R0~znU+1*=>)UAPRym-y}E3aFt{)Qd*x2*l*!1|9rwc-Ar zCQ@Enp%M-;#+%k{-m&B5AK4T8J^Splb$jxwmK}b1YVE^;^*TlCcFMk+-x{siN#h;c zuKvhA+kIr8{CdTnemJthN!yl}+IIC?*I$rVsh4eOt73N^oZ9t`C)ON%VT0Z0*4;n# zV{yJF7^zS!Mi(}1eB+&P>VS@MykpX-26gF)a;IveVRA=LlZ+1#9!5)sD2GlDNSE1l z>WDb<)6r&W^*afP;S4-J7{%+9Uj{+Ckay&p0kq^3^GX;eM*JaHdHol9AciSEL*+|o zh%w_C_snqrcvp**uEvj|Rho6tm;9J^IQp!Gulk9<1=eqvq&&!``D)-NGBo+u)_Ad4#pUKL(16PciZ_cS zjC*cGa1x>?ER3}fAFChx_?zSmvLZ?_+~oRoSorei^_rC_$xL4KX@=XVUudK+-%({} zP;$D_UJ{~5_luS~No;Zu7O6^;<&^`cpOfgakjm<16ng(g?m2l8hK!6M^JF;#;s;;G zMHaJeu*Wb@KEosG34<-`L&9Jj(%v9K|J0*+kei-z0JEG1c|3762Is=Dm-gbpul(8Inq0|lNSNMlKFS9MU#Pe`Aq{EuDq?@+m+HI zAAQdAx+J(f)J-&6Xlr4onw{)q3}Y;_C=GS!1`((<-oDZ`ab6Fz80#b#7TSYwwl0J& zyorXSCiZ=$hv773C>^DigPPm?JYnK3c zQN~JB%O;NJORwyv`==%&Ktubi^HNNe^JM$LcT@>WH<37Y>}@MwKETtm(=@i@cHef7 zJ9ePCj~A`(AGd5KytkhVqp zXP)u?7!3EG+ylvcI2Z|WBZ}rg^as-8q2pjW{tPO{LkR;qABDB)Z<1LpNx~s} z7z6!iw$~{#al?c0Qf(!Umwuu`ZuUlcAEV+r0zFW6!dO@FPdi2Lls_5mopvZUKwb$v zU$v!knpy_Li?6?JE7mVMq`t$=IJxkFU!H%2&^E`mtof(8xn`}SmQ@%N75>4aE!%na z!an-wnJtx9Y{6EoIa;(b&*>^-nK0rB7nL=XI_4Ag79ul`ze1H`l*5HZS^ zP^PpS*8oO1hPxZy)Q=2$o?$P<=hr#%9-eR4{NZ=>mB<@s;um;eyoUl8l^%NWFVM<| z<8iS+9u>QzA;;tk!jc9#UX{mj`QmA>Up(seONZTIX}{AiA9dvK3`$4cVez;-v{rXe z>GTHU-k>i=YA!D|+*Nzu5Jp9x(C8Lm07`cW)~*xL@}h#Iql7_2!S%Z)@+sVPnWFNL zPdgFh3~=OvLj%1*-TH%?{OaHs%QS)v^{;ZZyG!=;;GTW-{CoEK_M5hUv~HcYwAw59 zG5CN5>vU@N;_#;Z`sw%WufF=Bef;>LJ$t%hFCJIz$!Ar2{CUj|_heu#w(Pw(er-Q_ z|Bvl&zxyxk2e17Pc6;k9TWGe`&O^RlG@iSVhhz9Ws#Ee8@}#aMaAk`awdlauk|0*Ex! zX+%E;qfoz`;sKm@ok!Xl?hN?AQLvsCF`c7RzvigpNRzJ(I9kpm7Ug0f^F<%LlC1x6 zz$ZW!6%2ke;ENOD6~*!SgHJxUonQR5KkvTw@V;I7&fC`5T=xY#$LJ<{|284Y#qn={ ze1kkf7?VRPjqNW7pJFI<%z7>$2Ma3j>y}%2 z&<;CVp(s^o)10Kz>|SGV%O5JF&b-()*mk z2HlQ_gqerI6Mb`I>*FQ3`d7khRjBmU&1Ekpjuc7$CS?rwm~U`#h9{KgdR ziFTQg8yAlFg~Yp_rWHZ`hxfkBpyJp}DoU3{wfi&iB5+hO0_Nkwd{ig0$sP-UDC@nYRG@d94 zM*Fbc3U%PgWBNS6n?hU!$!I6N^x`*#gl@Fc7NMEPI|54UpSQ;++8mOCbn>Sg1*Fat?LdeS zzJ8pYYut!gn9}-=IpZb^NC3Ij;hn} zj64_N#=x+2WP{?N^~)zVDxBJ&)UrY0#CpX8>y`Gcued?+RMMrl*q>Mznlh&~(>geu z+*s7hhRz<&P-EP%ih`0M(hWlrA`|9(C z?QKh6-4nY~|IA+7`jx$T_c!*|ThHvR?;O}W9~|4;-#fO4@0{9=`#rmLbKl;%{TKGZ z-G5_`uKt;=HJ+(a_5E4-;Xnfv{alN(QDw;nn{V3S){ktk^^T3|>pmz=3K5ZO7Sq+H zs!+y$8eHDTY@=U>1y4@BoioF;!3@ux4g zZT~l)+TjPt)%Ed0E^jqUc$tM+@p^PYY1{_A$<=9X=(EZVKB8}|02 zyY}d{J9gvhroD0hmVNM@NA|{pJJyhq#G7&XoQ=0fjP`KH&h_ZJjC#!s_Vd7X70MA7 zsE{i?hV4t*)P;O63$Q>}j6oRC`LQTLs!RR&LMWaX@W51$ERHeMeV|K)5-*H2_&Tag zl#4L(aiq-92EF-ULcK&|Bs0LB=PN)WpG_t{v}=_>!=lDz<$>`%0A;*m#JeFcqsu?r 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%0A~9qN^gQp29kkra>MYxHgp&`aN1{kl(*H&$c~S8 zPOZ2jD>{4*6ua?jU$m`PF5AQJePBBp5KWj=PzTNc5xnUZ$RzA%LcsCEmPFs*nbaVY z)pphDIJkqy*r~e{u8S#VGUatHIXx^(KH+8|;U#(ijS2%9r5|Q|Nj8P+ni}2MP`m!2 z3;4-pY584-^m75$k+<~Nzp+exS;!0IyfXk-I^Zih)JJp|-jJIbf9D5-M&YiLkr^Lw zN#49G>L*Bh2cZz<5jlsv@%oC&yvNo_>C_Y=Gaex@QC+RM@qYC9zy__Z(obmtvFzf# zJIJ}8oUY_Gy>oo!t8d!7|JiR@{oJbk=)e6F``}-F%Q}0V6w9lsj3K$KpJHkbeeHBj5X?l7g9sdo?JKz4t zb97uh&4B3!SkNVfDNe{U1M-Luy23H=z5Y^vl%|t#-gSj2&wwW&h;rsVWpp9nB%}cF z6($Fx0p`IOoWFDd=byjvO}UlSE0L7_i_eJ)hj8U1qXV z_`SEMk#~Un3fusMPuduH)i+m+AyN0JWqUH(`zI}LpA4O#Z}4)@2+?n6&#uFwiTvLD z`@gPXNYj4&-~5rCJkWSShFYr6O98s@pYHuG;`8jZ!$et-2Vu%{)OTpl$t9w=9MC@= z;Ga5^1?k4LAK@N{4n$sqjMyEabe%76nF0>7RbGkXDf5%%!5Ikn{CnB@t51{@<$+%E z=s(WCr$v7bF=%C7@{97A2WTt|6iv$lDQ8=KP-3)v9Cu-rsrKF07Po_h4X+>56;Q*D1e%V$MB6De~6IooA#5DQm!7{`| zH-U!-JqTOnX@A7K_c7F)6hYUde+-6zMOw=srk|pm;^#91JjEM2mQ|ji>6`XN4D|lf{ao8L<|wt|4>$ETaidycMWj@h6RiR5iv@ zM@m396B+6`<`5@Ck@r*Ol~PBo1)qZBWchG7olOoE=Rh2Ut@1WL9FOxy`TY23n9rS* zCizakpKs^$pJl83+uM2DZsb?`Hwwk_VQJX!mUDY|D|Wmi!~M_=cO|?w#&EATo3?pt zJ-2>kL!-uZ^-xVaez+zhb8XT&SW$_~aL>tb&s8R+a%r-9xg_JUDC3zHy^!l1ou#~>>x~<3Y)=kk++*M~VUTUq zVRq%5@*=s@;Iwxvcf2E!BEyuhfQE>j0IL@Q?|UDs5eXfs4-~x|CswNFZ2i`G^MRa`20NXnB1NBZD~JL#bVLtY^X2yVEGZfjJM z;XbsZgGcs%{Wo{)(Lv8@GL~T52PDGb6Fbf8=WY9ys}fV+j_xaeam9)i0n(-O^+s!& zVF9-po@Su@iru2pDO6=RDJ-0L90o^&PFE_3Y=n8Lah@YI56=iX6Q*>@1S+M0G6t^( zWJ?JqK#pp*fhE%h=AfmyOI0v=T|bQvVWeIb1sPVn-aY|p?NJrut0Kp-In`fN2k zdELO+Qa&OX9|)=*^6si{&rH1gz*7j&k_#(#l0Tit91GzAU1gg*1M|*7OM{{V=|y-C zbsl2mER7@&DF8g8=bmT9zx3r-?9IRX%f2%A{r~zKcK=)N3rEq#qZ^8f8~cGkliNA| zGLY~xfINM2L$c!w4aIUOXD>HLpd68f;zqwY)=6Ky!h3p77=bU90-Y^06k^;D3RRuJ zu$s12j>QkZGwRuNJZ<5IvJrojq2hb~)lTuwazu<*`O}7|ZKnQE&cx*#%zS0@vX+ieZjIki5Nk(VPFF&`m6;T}J~oBaed z@xp6K$T|$jo&%H_@*vO7Q@Bbp9_%{d@}Ztm7pbe1IiKqc6E0z=17Thf0u5y1&LF%7@)fI}t#bTLSkX8qi{)wek(J)mD;8$JC@0`d}w`eOq4 z8}~4Fv8y{!&OxgR6TV5%8}%&O z#7MEcjJabXh{+TT4txSafS45NI-Qv2SwN_#qw*cGK;gO?i7dc0AEHg)%MK{`Ob}8^ zW3%)esLgSq2lpec?wS1O^R-NL9)9vrV+tmh)gDMLe9CZYxc}`p>|yNAP!;XX_M z6igWaM=pz-kqg>04~sOXgyQuXa8^`@XT+cK#&w2AiDzTE2I$|1TaFq-pTS~6eJ;E( zB6UGh^ZstpaK`~6_8i??3Nihu;SNlBN}eyoPn8!!#&FN^-FA%jXt?JN$GOQ-euD8nI+&4GTiU1$+%ikVbzpKU7AptaC~_4nhf`A zMXRlg*FrGdAN??wYwbu&qLf@VQgj)RZfLUVj^Iz8m_7cn#2~|t&VzFBvd~Xajn?+7 zW*6R&f=I~@Ww>L&62}cZ5K%&1pa*UP!(9V<4A|X|O{4Z1JrIjEJYu*r zVZy+RyfXR0iQLn4bu%^GMGHe3`H?rrk%Ei;d|_hi+ar7FEe2y|4?fJ-0ljxSyt< zuH+}>Da#AE#0O6U2ERu?fvgP9fRGmD5+*}1u)Vw&z~5(dgFMM4;8UIf#FO)a;Uqi^ zRUZgOURAKZ1((4(G%{I$O;1~c|1=>pjkf@FP=k&JL=Sd-Tf6(sjcm^XaKwY+v$BT+ zcpU?S{o)sH+10PVs;ahQ`yV}WgMqr}tN-YY%b$OKV313=hJbiK^#ejV`rsQQTIIsY zufd>(pA6sRS8=nk9pr~h%WPS$S3Lcx$g|)TCnw`$;P3G>=m@KF$U2iwN?_`h2?KZ( z4l+#xdieHLPp@ww9l(uipS(m?)Ug;(vh_h|Gz3DDDPbVQpG!HW>oOJZ)PKKsx!@>= zEDa!0kc@oL1)A=K9|kiRpK{FSz6--XODv}hHx)eQHFZJ z40PBP;|8=34CNOR4{>zwSS}a5WBIB-@zr+UPOJcx9U~-e1MSnmqyg=$6BLq9zD?T} z0r908@H~g`>v=Cwv`V3Ea{#lg|i@*tz_Q3amm)NUv$2_ zv{Y`brw9HXe(x~s4mj2Rg~*P}WDQRVLVJ{v(-eg1`KL^kl25#-ZxrciyB}p3An0X4 z!10fde#H;<5LpLaz~+Zv^q>3%=fJ(nB%HA#aKiK86RqHhujhjZ2-kPZFu++x5RQC% zOW?tGywN9w3L>8rC-V3#$f77+CYJ}Djvc8lp{$%ztW%umzZwsx`@P?N#V$m{eN|(o zVo`N(u`JJo$YU%Mey8%xFtkW*E;m#BMXU^@pln1>EZm+A(gBZ)R_G?llro%)OnV(~ z&jcqlz0AQ2WMK+t;!+>PulFI*aCbdR`YSiJdBWvWfzq2MN&LA7;6<2+l`K9^b(=ct z?YSQ5j~Ta6@1UL9Er)cSfu|bv2cvyL-KUMq)Z0%FpEh1L@9{qI6lsxf8NYrHWUB3% zpg4{pQm%07Gxe+%NrpS6E3cu*^mN4l(?BxU(lf@p47|yqSm6};Xt?M075`9?k0u2f z@8i4-_fe-H!@ZXb_mT|v(dS^emt?q)+;A_f<%+rHgcbK~8SZP>e5?FKhP$u0@7-C; zb%Nn8J*eB56?e5@GTdcg7ISX67lYyc@V#KTBQ=DJY;tOl*oM6sR*2Fi6!EitSnhf{Xr65wWtl`d9?pTSubXH|>Cc~XA(ipKA+HSa0F2aGAtl`dk;TY~u zvxa-bBmJr2{!VztkcB1&Id~~wbB4PbT6oMF?$CqBsp0-g#&8$Ssp0NF0Wf&y4EH-B z9cU$>vP}(l$#ZVSJwr=8mN!kyQffjm%{5rb_cKpu@4f$ zz%~n+GWy&=e0#$iJ2@p0)EfVo8FePJLDP(fAO}Yd*(N;F^3_Iklz6I7v|ZrNVrN0| zope}TW)L0*M-f|L4BYZXb|@g@85JK?t9}Ju1n~xb83gf-X5SKyq3Xa2Dn{(WU{XA? zx--;Z$G0teqMoZcNIs(;?+tdmOsAeN0LT=h*~>T5N544nn}K}u>Xvk^BwjRV%}f$` zX9l{SgB}I{X}Dj}Bfo?nJ@{^jn3k8ZLeMKWG8{QEpXh`OkZu|L!rSJ}3%>irqYyVn zjiv9;&UgXo&kF*p&#X&wJ^;fIKiEWm`0Ow;3nhAGWo^~**IZa#S0;KCAh(6VUGGc;>k-<=Ti=+sf;|;pHcsay0y&drO07U%2 z3t<7oFLDM~f8iVj3>bwwUx5MsygcwB9p#H)pS)qx&C4g^b4}!DH&ehTyx$(eQk@8; z8{!ALa?xuBk-q;Z5I*(qMyKm0VS>3hGw^Z}ujHA}L$-DfZP4n8AL0`^5O5t39=pDL zVhV3)lF6)dek2ddQc!6&G#qH?nRb-63`k7rnr;^XQd3aAp(nXq`qJxm`Ri}`gbG<@ zvSIJT`*!zFzHdhlpZY63p?+l`(sI#I{%VKt@-m**#|*%~5PWQ_FrRq!#v%|3_uPbw zJp97Dqdq|tpB=atF~%YO%7n{EmsqdDGgtm8apFqnHIDKfT*3?KWM~R}l1OpUi{}G8 zAVbkR({L9A)*Pr`th$H1D8I-k>C z^I$n6Aq$^9KH&Ao0lfrISLvM@wv`Nc|rKJ zk+S)X_o=+2?7eQyk$rv|l9eM#r)V_h40rj`Fwv;Tt@0BLPgdJoV!;h}VIQj62g5xl z!+k8nJwG`rOeRO;tl?gg;Xcj}N;2HlU%a^Cep80~(`Om(MH%iU!@a)Iw5^wx8}3~h z?xQ7!`??JGI);1PD*uob_oqRuYMhWwZfdy87{$;`tG^iTX~jJOF){ki%NReO40jp2 z`*#(G)#9|`E=ObOhPw=6=(^#4FBrQWb}l$UIh6;7J4Q2;2WiDUYq%#x0H4aqJNB2} z_NX(%o%iPP09THca3%vV+q?O8yZY$w7UOjY=d_V2#CZGZZsNB#_u7oVZmU+CnOCyI$X28#pb#TzOCfo9#(V$hBn%Rg2!C#X(8Mdk%cd3CoO&rgK8c|E76zsYNqI?- z9z7Cxa^PtIhD^dhUTFH^&m)9?zxQbR^=CIWq>~JMz*gFBw7X0KW&(^ia4DY<7Sk4= zJ{T{Ttz2KRQcZdTK6HhXw&A91Fwj9S`t6Pldm1QO&%h@4k0jvE5PN-t@{UX!`;&pM1Aya$a99#vjIKE zsNod-x?D&SBO@Y2AbrwmKRr?tv}=Q2+U6R=6~PT@%0`}^v}k+H;(;Ic)H7-LU^P60 zj}gNz1a(607Y0@#%v0CZPZ-B=*E4kCiAkh15eB9w!LQ$7>Le~Mn-E>Q=R9{TIXru>kdYmGb%r5 zM7r(=5Z`Hl6TIda5kQY;*A218YQ@OeMDzcJ&D6Bi6qMAOfsZ53xpQm&L_W-lcnHg zEMtmEB0u1iL)(~0TLRGGYyy7`Am()n5I~UnhvN~Pxa$YqbX~|o)C+`9 zd7wY^9S-Oe&Tr+SK5^^MkycDU$QQXrBZ2^ApmzWzY%MyAE7O*mkai#m$&Rk zAMg30yuknDmv7o7jYHVf(O{>GcqkM^Nn@o&xt@j?p018B7qjEw@=gSn5ejh<`chC} zXw?EZt{#(*Q&>V8FT|#nS>eLU@P|AIqmAKv`emP#3Nr0=d)C%Czz+aSki_rc9AvJM zne>FIH<8Dg@IHW)g%h&mlN|6Cx;K)m<-0ZP}CM*9|c@Wnr z4~N*f;SMCjJso(5HdEwux)|=)z9gk)t9&xtWsuW>`{x)?a^-;)ck+aB>?`gv$lY)k zAy3+W#HZ-6;*Q}yx8j}wDji$uIlRwT+(i!=x#121n&|zEUAxt_TW@t$=f?K%PQ~th zT$Qn04E2sY5W!d6x5V4|V7SK>cZ#K48C$(EQgLhWIVoD{{AFEBHrV66^p@0t&KLB& z^}7=r=460zmH_hh759Cmz&BXMa!FbykyPtrU%lTtKeX0y-tONn+p%~W^~*LGh=vAA zw8_8p{?|XSZ+#%$5w0(LF=!$~-YBJe z{6&bZK^TM#nh**zrqjwV$lN;c3?1;Q1iA#|hl5lth|mz%=fs0Y&j_#0o+hzS83ZZUK2l*MLR( zJi6R;6J2TtJvehe50Reef|HM@b~`vTF9tpkMqf$BeNM;4#|_3!FcyD#dY~> zfQszBD2NdFgAe||2?vZxr<{(r-XJBi4&2hd7m;gOZJ&&?A(MH|gXl@;#=Wlm`&M3Q zDnEI3e;Ooba7mNF4HJR>xhdsoRcgQ29{Xfs7Cb%i#%iLkGRyf+ft2a+@6U6__c9P7 z`KRsjT`u01$+I{%J&%xOIl{=w&oFE`X`6|2gDL0DIY`^j4?STOjwHbgh?~~x{kQoHt;RXX3 z{YUOf!`tAD?56r0Vw?@jQw+IYgtKTR8W~z%?inW?9LvvN3B!waf<7d4C~~6hGb*&( zx;SLgBaTD7@wzWLFb+VU7s~wehs3~?kpN_7Dr+Fz&vEkttVw4bOXRp^j)P}%r%v0A zcNDBA|BT^oEup&ME<8R7=Z3rb$bIz|htiNEg&&OzGTcpu`zYTo$#9n;{}~PU4H@qH z!Em3*a38zj-frY_qq=I@TFwg1NoBK{+q$_v*|@TiE5sG|lgBdLZ?9Qvedp9$`+hXscVo@b4~l`Z&l&FW#|VFx;qLFaza}wCepAC;#`e^3 z7ocs>V|5<-7`WiN;eHsAoDsDEGKhVvyo}xKR{7RbH{26m7^D=T zm^0j2aTkxtaHru8$RQ7D#oZ0}hr&xM?&wMe*cq^WD{htlsnSjFxMu);Lq-_xzTzGY z_smxLVre1+d1M!_$=w(#OB36FQn05F3%<(TXN7#A!S+aeV#vDTE?Ry#-EAvcPks2r zYAcE>lI@nXcUZN__Up=i$tHVuEk8K4VqxIh=&93)W0EghX}w8{Yok`nhH7A$+0N&A zcR1t~qoA=-v|6)Zz1GBzc81nIEKl14I(N3Ac6}?|(Dsh@?Z5qZpV;nU$MTZJ|Ni%W z$NqQ!=YQ@4SsyqsNKu?nm-Q3sV*uT|7tGOU0ZTjJc~Cuyw5A?GzmykWq563OMM&qL zbax3jTkw8Xbx7635X|o_zG<~96IQcr$9miWGq1cJP)Fq{2WN0H0AHFDd+(S z@oBKM8amZguIXM7R^>6qnGh*zye?y$K_6_0&UnxZPWMGVS*rXNp__1-BtqB3PulLy zDto;+w!?nTN;HreKrX(bs5a-!@^F7LbVhgv978(k`p?b)=Uu+p`t2;t^ARA_Y3eg| z4Oz^+<}*$H`Fu=4Y5R(6GTdD@#OI!!1+1oqT@8K^5@FN{9DFFQm(S89108mdgx7Ca zR{aL7$_?5}^M3YcTXJ;5`G^1NDy);X8ql#j}V53Pz6&*>If# z847hP{7}Dir5*%Nxzph772(rh@lBbFk7=FALdsMMi?n$)A;%dt=oNmT@FPI}(_Jx? zW1=Dc-56JTVIs)U123ZCug~b}tO?C^f=P6*+X?v$I29}p_@Xa&8u0iW8fOCSjM^y{ zZC=oD_xJcyy_ti^2jf`k1?{(F1YPQ?m-QJys+1k$og3$B_CNiNH|;My8AT5 z0jJ@S)Ru8OHQeR+Dy0O3;XdKBZ!^Pv;s?|n%kNP47@2Ok%ktj0vHURH3#_{5W!#NA zqdCL9A;bOQ3mER(GTe7w+;Gp;H=7d~?zy!q8>QZ-`b}ao06txO@6kPJhS!?cj}(?S^(V+>-)f$gzsQ zY{lI~!|{}MGThH8KWlNtJ!`n@f6A*LPIt?4lGWsKG~CA+?jQwV&fsPw%TfP$gh5TdFyoxHZ(rZwrRPwEg9nqKe%h9Qdb=W z%AK>$iSVShqg=%%7v5CXWa#hS@ss=6(q1fTz*~~jK(@X%vCT_4t0)_-LmA~yCrX3& zl5!d>=Uvnj24pL1mao=*JLT~B*d~3ICGtWXv10Z$K<}!fdU||ffA-!Tf8YJqxr+Vn zFTZWy{LYVjq21dgk2jOgGJswXp?<(mW%yhGFVc1z@&4xu@E32-f|Qr(Zx+;8dmiKC zvtSyTn@k*+&oUa(!{s1{F`&OQ8&1(VMM99UJq(f{tV=azoW;90l~R>0M7N)02#2lETbPkD5jf@ydLF@=2^IFl}r z9v10Fe`k_>&F)X*z90}y(WiA5k4VZTl=yUy@azD-+;htd0M8Ri_cL&6iRNd41$v9% zl)b!P9Kd$N0=^cBXGx_n_tQ@{>=dN%pm(1QGBMNb8S?jXLGQDGSNMtHa#P?Q9wD5< z<~a?;6#clkN5aX{`V^38q;x+sAlDb66T|)g3_SM+0Y{qz*+?6g!k2-)jj-qL}^EcL* zQo8G00P&h01)19^%&EdD2!S4tG#p4j-U3r^JaM$S(K*D)*`lly^+QY$g33hEfJv_x zhHRpr1yt%eUJDX8Zn(phoEz?vzvqwftFE!1m_hb_2_MmG+FmY$rR+z~X(4cx%a(02 z+QpYo0J0m;`#Kzkd#21Y=_iVFfTs-iiSnL{hWm_X0%!5(0PjTb43woX)roYU0n+uf z6TxtumtppPISAj8)UI)R+HjZ2BBYt&KJkO;T8eP27>Ba9r-r*s@BOhq%V@X4k;W81 zo8kVp4EI(t+$S>J+cMmr1jD@`!+j{jy_heojSBf@uF?!E?(1R2-9HC+gyDYIx5`h( zGTe<7_h7i^WVlacxLa+_mu14K^3O2bd2c*(s{G7wS7ktCjxSeGGUs28hPxCD!<~26 zG2B^IPJrA`ohqLUcgc{nz3S`AWB^9<)NtR;816IzN*5q~_*s|Xe(|l~54~p^?q3wo z819)B_vae!9|wAb!={te&(v_gD#M+v@}lVz3m^sXh62M~d71EzzYO=BXcopDlPzqu zMrhRfGMERYEgRJ@DYhEy<2@_%_N-LofVqk4p(?b>X(YovUu{@Q;@syu9&GoIJUA@({we^wh@0RS*CuKW1F50k< z;ZEbLH2F?{eO)qH6_Xv`PG8{jbCQ>fLHQ%MLk*0NCv|&pGP2treV`l+?c8d`+f8qe z96QM`-k%8`A%LSj3-=62<$fk)Y0f3K0L#07FrS%1iYRLi}fthoX9HIo|ssW5yl`&0URnkGu-7o51~&E@dEJdWk(#Y;r|(+@gB6C zUU+6qKF=@r_;VF+?Di9XQ%I8v@WQ?9sz8n3ES+b;^Y9e@|KsgHw`@z2JU`5j4lS<8 zo2n|St9u$l%mBl+@PWiy{4k5}fcGJu2M<9!0sxZ0h@S2)k(J`A&=E)T|NEQ!KEC%k z5jSpTH7vr8D|0h*bFtmFtW*rhQWRKU^g=(bI`bF6)bg_wNbD$jS^+m5?$jrHx~a@=v=aeBG6{3DM0j$7qBj{7=0?mav12nWTSMXo&K zj^oZP`Yp%3fatl6`t0kJ-sD^5aoTy-+_%arjjsG~%NCCKx3%N`PvN-x%ptU**;UOIoXPVeVdu&8ANt`vPxh6Zjp}9R_W?}KmGLQVY<7~ghwr- zez;1tcN8Zn7Sog-Zqkt3z+jQ>%K%y}XX!&aPk($kOc#InU(@x+cj@}}F3o3iJN4Wu z&1d8MY#nvsy#t!uy4+*qGoe*qxFv1}|D8Iu4_yVIZ0C2VGB0i|pB$d1(-YZGaKN4F zjhM{ERd-2w1X{wCkp8>14DdqjI->d|wrqjwTV6yP=w=`DFdlr5x1{|E5>% zTI81eOq)~9Sc|Gn0Vfg{>p|+ioDPUO72lf1*;U!Iq3HcNb+cRr&3x|a3%gF%PAGIa zEVg%BDwF_nojY$mbrFhJ|7q}Ir;>2+w?3@ov8QBHa^ymJ7qtmPnK7c zG%7q+Z_AErb@U43|~EeM}P#CZ`wQ;eABdt9fc^v;W)i}h{w-f|Nh^l zZ;w~$T>bz~Jr`OSW7Fxq_W{0J$Zaf*44~cGk*Cox-pCFWSE^UhQR+(`L(x7?$;F(P zit_Fb?d3%2&AVh!Z#){Np>GY>c31WNc6afZFXm~=V>?;=7P#H$AlE>3SpD&a$|pSa zZ#`&_y+ZV-ee9bVe7QYwJ34zzbW&Znr1YA5*T0NC^Cic!1I#A#Y9PxuW@6TGkKYby z6q6s0yC0R{(M;La&ajx+UIJg$mVWdJy1=i^GUx(IZYK}ja;gi_+ESYJZTLuwoGui+ zM0zM&qNgvIpbAl;7m&nl>IPP3g<^^We0l|(t4jqm=&w4XJezD^& zUO~9qasMF4{i<`TJfZYm%W>~<#hq*%cbxJWSJIUsb{;sA*R$hZKjY4odC}1(+KG^&;(^AEedQ$F#cs znELCPZ%4ns4Tsxvl4t)p34txH-^zJcd(qpr=Jxh=IyzpaZ+2!|mBQ8%KYqks5^m-&&;e2&G~bgpLNM*srgDVoQi z)Gc9w;KiG{$46)B>{vz?9K?n93|TkXguhQhtsd--l1ct;qZuq%pmrCLDFu-+Zm%6J@XPj8UALO%hh z`J6hod5%8@r40}|-sangspPRSjOVZO*Z^E#|C;N*{oHf41LhHQM%T>@Htef-Y>Xg| zTiS!Ce+!TJ$)Gs@)`9%kKsLZeB=a!PUecD4$5|sAhy<(SLW|2*lOS)#XGRvGnyxAP zG&EF&XWleD4MkX%iN!$~@>(Z-!RE3fd#EudLgf0X0%#OR?Hz9exz(qfod1w#^vk&eOI%5NN+=cL=@!j%Has!VR7@}E4 zZ+_H&v_tyKrByoDx85KpaLA*q(!)WHKLa#IOe|4EA9dUnmjl+jm;ZGuid%Wv*V4TNmhA5|U)i|8{A=zP1lkpY6^?px)Hv47bddC&_;<$6g9r*YM;UD9QJD~1$j~B=N8?Ly^ala^zyXa^K2Qu{M zOy=HcT5~eu_zQLI50d@Qa@;dNtC@9`p2IJ`NuyV<)BJ}&q{aK6?AUU=B&=Rd9ObkApl{N9!rz`e$C7jHT4JR;!FsaReFJj?#Yx9jx!H>-4a z)l2{MfArHG=M+?!$zUi2wDIMWema12_1-VC^8_}5X*lrrwOHd!^8zv6&TD`XJVLEV zm%MCH#UT;9|ZG;OS4XZ2l~%B!=pUc5MK zd>jXP;4n_khb#^*jyq=?#KLP~hM?tFsIWC>YCCoy93RT56E7@!3^;Iw?qxm5I!2a; z6)*JBfzf$+Np@SZ9)h6f;G+YM`n-(qPr-)6Gr<+~Ble+5mP1-&z{feCK!fmc?iq|%RZ059-|UBX$=9&3 zE$q08PjQ}|XNmw0(yjbl2rC4Wq%7zAS3lw4xgautk}Qx1e4G$b+pDLl2>+5&fV@vz|q;1zn|@B>HBX zxsS8m%`WQ<s`I8wcFvb)Cn-QeBS_d8$X%MnPCt z`aToP%MmAcgP6ver8sM#>y!$$#K^NAI>v`SuH^iNHVb55=p6SWeMkgjbwGSR7dFjN zO#f}mY)YR5`jd4>A->5}PSyLX`*iv4t-rdUPB5z&JEi}ly^aD7BY_T0tFt<;;W@z? z9(e_V{%P=B@Z1f#p9dX*q~T{px@ADkUvV1QG&DoWYpO@N#|ukJ$&rj`ZFoT49Ai1u!qw>5~=87GI6G?@(Tu-`q* z((Sz*d)}s=0XySZb28!O$%#)&EHxg#fBzxUA?SmKGInV<50wJs~-Xr-Pd-5ZO$Rcmt(_RnRxDfGDRt!Xq zh4x=Y=}wQaR`#hU{jydzBYR`s4ZsN&Uv+1_kqw3-@X}^l@#t}<1(m4DFkpU0yaDa) z>s#eL5Pt#et|jRxY%OSWNedb|3W=?y7e)@2~I2>*3vE(U;?XmmT*bIqrY@C64>eczylP zlhMZ?_xrQkLv6GUR;&JrI{Y;4pPcqy$Zy{P z?Uv)N-iWq)C}_e>PU6=8aDzQL$2#cvySB=w9ejdpdUGc|xcUGs{9H2w3u7m%QLcg( zL4jSF%JV;EMNb@e9h^>Iq*rH$WTfLgA4x=*!%qP^@ekXwNVXu$+k!%;#nPLn0@9EJ z+D`ehNkg0YW_h&BZ;jSc;wwFfEC%f8WE;>28gsl|dt2uYz{b2jLDz*WyRmtOxH1#% z;8SX4ZbQ+PP}RzzKvDB-OcZ62moqatYX@)Au4+FG(v7POV{NcT+PJ{d`gIi(kUzV7 z@QW%NJ7zk!I;S~)hx`&z`<r4)@w1u@QIzk3;s`<;eW`e%@5s(n5o>rxF6lC;LQh08S>Ft_nUHkRrG}jJ z+;QEUF2Ckk6;L6oXXvm4>LN?0&FJB_M}14;|6GK%6M{^#!#hdu47ikg| z`I8X(#XQ@HRsX?&v|#IM>8HTFw)O6Ub@wrYL$@4qwIkZT4N%3`O=4|mLnXw7w4X@m zq18+RN)7YH=ZBJW^!?bs*?HRYR!bbC9cKeVXF0OSP=cNBrJOaYru55a$ zJjii>t99bz&p(RK{buQ+kQ4N(Tc*)ae2)&&SFg^}@%~==cypWn^6rBi zcurJobm#&caMn*p2kGVHG#&D&Fc;|*OpduIB2&z?@73OXupXv?{%#ld>2h|Pu4nf$ z6JK@Gm{I$O?knCWwNySQma*~LjypQ|LYKzoN!m-ty?t486 zG;_4iEIsGf>ifqWcaNVAZ0GEP-0ANBZ0~GiL&I00<29Bb$9KS{gc+~_=?h4db`=7N zWax7SL)MZh@>}IaGE>>TD%{F+w{o+uHAv!faMcxe(X|}+z8v@UU(<2lljFYF;kftZ zxUc27_s;UI@(*&{ujROZ;N^4|N2}ht?YN)IaX$^mT^sMVZyn;0a%;{JWy-rl`c9>?^h9OA}t|1q8mpNcQMN>|x& z{~|s~#})URkKwrANe`~nH(ja_eQ|c*{Oicdj=P;z^UOd!-ck_~uafJqgwx$7CY!-`Y zn%&D$KmMEa$0?5c|CUy=t7n&FUteB{lj_4$IM9MMWOWar!ASY#YL{hn~oMTk1e{^TWGzr~dP1C?61OfMrL_GvTpHksrT4^lEY5OMB<9 z(-$w}cDj@OGJgbhTMDQjqmP9A`{3h(O}MjS28s$DHl^=vyEeodwqxoyAlk5VfnWxm zPgdz5>#NJzXatRe)v6c$?v1ps_6PkI{0CCl)7^bBa~XO<0gm4c`AWlk~2=XVcjG3D_xRN7RgnjIe2 z0pBiL%2Yy|TYQ73n5L1ADZ{;Sj6*z^0dWcXZMymC zgLRK%RqmJqu3P3$mPshRar9XKaNK|XaGT!$_!q6EcTL-Uf&hN-Fn#{kzQQtIkqJHP z!9shA$hWir^yCkb(*^1Ee)h38ET;-@}n>6Y7Q z9*!5CBaL04jv4~mOw7lmE>wI4q#{c-#EWCd9OqX~5>(}O@39=!UjD@Dn}7TNOus$2 zPcPS8;NqF~;5nI{rt9>xdF5W*fCUN2bUaE!_i#S_ays^M9DgB_{&7;2u}tVzd07aP z6du?>!&Y&;n?_a(f)-$?aJx3Z?8hsjysjEo+|f%q$@w)2`!+f5^77LF-Ly|e`xAMy zzukM2zMj0X!~OmA=k#Ch{+w>)xDPeI8N29AU-S0;*#04j%mB)H4B+HId-6%x^u6}H zm$&ycu%ZM=fvg=u##kX>KAX4pBx)HK)D9=(baoss4!*me*?E7^+QG?@$AFTtbbmEI zP2cQ)k@8xtzWnVCl(mo;`~*KVkaXiHNgK%zE|yOKO@ z;NdOGh3Zb_RnJsMPWYOu?eUCz@*Cyz6?ZxAy~=T47RP<0I;(#<$GzX{pRDD$ug52+ zy;qwn?rS;jJvr{{i|0Q;yj{91UyE$;HyiW!c$36J2S8}|M-=y_7|BdR%Y5e$oTKlDQ z+ybw5lsT@&_3*rxzWn_loxS1{X{+@9`<2)sle76E1!V?qf&cn9v-IjqIqrWMrk}na zr@I?XM9p7+QcVX_juFGjART>moc2!l(#_BJ>Go%?1gk(YV|3>B&{p0&k0w0#&xsPQ zltYr+5elF$PC1Jujy?5@O$3T=Qn{XU;1cPWq=l-x00ME4*+5Cvd9mQixM?}NOYhRl z^amZJ7C-$TcHFr#OYL*$DtjzsP_)hc(-2Ziy-(DJSbf4c8IE?w>p`GUbcE!& z%s-k7>R%2*t}lQFae!rO@cU%U6W}_co!-WV8{WY!Lo2ZZR39F`>aDtb(|Mq=b@I)t zbfgXP&D)RZ?)`PxLCiy+Jl1M(vXi%!4hY-PZjiNr18@yhszfVRM15t&yB0Eb%K^%~ zfD*a1*9liC^)erzinfZgo!pNCcotg(WTrX4*o%DH>NeKAABD`PfLV&4BT5$@#GSu^ zy2yGKR<-UX(){N6{H#zz<`is|GUL*Y8oKFSP&f&)?udeyA3HHmX9PQFijxAA^&H5g z2FR(SG+A~It7_YjE4!VpL1v_d{B5OkRsrUy$E#^d=B94gD(l4fBEnkj`HMWtGhLCt z3$hHvn4QLU@DorUaVm%tc>!j*#WQ&HL_S@rrxg$_7K`GT(S7 zq>nteg(Bw4-)uUylZ9f|L?Z0$%gOLJ`t^rB(S?w4!d&D9wARbIg}p=Zl9$0u2^kwI zfQIrWKZlJ6QXu9S@@N=$@1Pf`60<-%GgIJ4!lbYD^LnNt5y%!d zc*W;=a>>TI!*S=kBlLa9~y%frv z1IWex9=AB6QgSX?IJH*NP$DQo4e^G*b zy{B3o*Oi8zL#{87g}EtD}; zdM5IFjY+Py`x$rDx>O#H`h}QY^m;2f?gOQlSIhqBD$P^A;{JbzO#h=zGc)_x~!g{EYjbvg1xh@a0VD@boMl z{O#{#E*+%aze}^XT1@$#x(}8!>=$iWb25O1tQ2JZ0th4S zW#Snk3Iq$)dQKgPMaWxShkJW!FOGY@;?Aw|S)Yv#grp*jyb6N+c|cuw&~Dju)AnsB z2N2I=(=)en8_CN$#ciGNbT#vY7H5vz=c58ajC;pLjC^kQGIZ6T3PW3SZ=ekTCvj%C zQ_V3QRCjD%4P+MqEqMUKN}4Fh-EMpmBWpYI#z+}<#`2) zx5q|nEzKa7QO1E5{+twver_DGEhu^j6s4vPZaKr^_!UZX+Sw3cZGd1SYtz;`+(1)K1RhTU zI*P{aW)9}83{BLLY#+wC>D5B)$HtVfoP2W^=9<#MCu!8zKyxBacCzD+qia1OrLVBz zZk^pf?k|yZ%(E)u#avbu*HT?OUXSo7fSx|#;6(F7fy*Kuff=K#cn~pI&KG zJCy?=I-gu-On9?TTTA5%Dt>OKcphsV**iT42)lMxiMZa0p5)s{{5ZT5AUVJl;YMm0b$^cbWK%x#S$jfoYH;-CXgJNvKo#&Q4M z{@3a2{czmBzt30P7kA;fw_u0zO%|3xcBEX2yhh;?fd-;HSFCHUJMOQt<9;Z|eP+k~-RdIUta03#cLien8#MMc zNyJ7OjQ0jM)X#@(Lqmz9d!1iE{P9hMlyb}rnXyLi1os1hY_T56GBKyuJPOd$@z!-| zi1$E>6~|qkmK}Eya<*vQx8p7`_X@e%eyb{S+f;QFJQnG$Gu!}_cQMKR{7;L6AI`w9QRj$EBEy*Kz5St|e*D8Q-QU3^n&EXH zrh`cuzj>1;uV1C94w$pI?|k+-8d5+N&~fiLtu={z_Zmky<-@slwZm`iAvqa=z*tcG=_y*WYne)a@_wo(=hzw|C$~5%~&y=#>d%rU&<5* z>FS5~>ER<+Le)+Vs*D{#`gthSZP;#Nr~|5urubmXKXxk{4-P1VuAd2^Ea?V{tdf@* z8*&-Ru3fv;6hZGo##MnW$9=+rZDyjAeWI~0Yq)RmeLgg5+TKqrmKoUO!~ssgnB+i0 zUWT$EH`C0@n|Sq?uheMsRP-l5jH|Zgv%UUo4S8KPtYbvu(TQ=IKTOk-7bKSU1E$$j zc6%&ilgIe6!!JEfHNIZ{t8abf{q2AJlQ!M&Rm{l%Hl0At{MP{T)lRL4e)gZSUfIY} zYEdO4+p1Qd_IUg{o`3Z36BzCb>gk_$tG?%kLug&Sft(fK1bx>eT+i~fktru?HVg_4 zS?G}SRfn0lgTHx)j|AgSNG< zI24Mf`<6|;+Y{?USxYjtLi#$&w}348prhN8+e_MdSK}`S?rZePajpzcj`!89b$YnG z)tbU1ZXy>=Y~F!fc?X~y$ee!p_uu-Fn|J@|Pib)%S6W+Dce2TuO<9Q$M!R8CLo`W0 zO`QTZi2q_=Ko&e45e84@36A@ZAMVooA9398ZTkTAwaB;=fhsuM?JMoMkCg8>Ys>la zI$nScxXQ5WkSnZ`@AXtg9#?{e)>`U?I%*&NfxQ9pJcg`v2gp|djZ;;^P#0pi=xcPP z4ZIj`EQH2aOTEFDsZ=%`kEI_kKErXBeyWEWmI9Bg4{bB*kF02WXks8w6^D~?8twC5 zp}FtAh%qdlyo{K~MFnSn_kT;jKb^~Q|2Z8DU(3;o{qxQIqa62ldA+II*MUZ82FAPT zgLQw_*p1$V}Fy&Zc+u~)WR26NF*A^Q|CGA8}(xbMHoj{7?O;r560 z57&S6Tk|Jcb5HjV)A`<^;=^>SC-$qs>u}ur zN510zZuKs`TWU;Y$35r^$?*&4?E!bB$L{K15W>M zperlVuCpGd{)$IWu#Ifcm!H_+w{c^-Oca zSKQUta@^O~+J#=O)=N9?s(z7Hy^qrIQoghu_uhPQv&fG7-d_Kq-@lvR-ahWQOS4}O zFwr^{Mk=F^AV(cqQpwm9L*B-`h=E?*cf@z0%XaW+{cYrsaG?IG^G!#+i~$h_O}o5} zY)rt+$Mqtgh5YDvonF1XORrDgrI$zV(%~fD5J}{Ruk*U7I@XZ7-TDL=IFo2Q(&8%4wB947=Fr583*ZT|tb4pFxuqapezHuoWmJ1SQ52-z%c z$_mH)Cmv1vMB|fP(#0D}mHVU>x--FiVrPSmt&Q+mSr%o-U%yN*|MnZ_z5j95A%#XK$g(wmGs=YwS))F_>s@l#L(tu>DbHICUBM?L0L@Fq=$j_wM7jF_%>6*TRVSnLY{o|mbD8N#hi#3{lMPEFJfC7NlD18d zDZ6vkGRBYUfW+zl$;ACX9Mdm>9uxWb%+O6T;Rm|^u|J3fN$bC~SI9gZNUu$s&@=Ly zabWq`9@!?FK0N1`=vBzn9DWrl!dj?QGhZ^#s7t+Q z6P37Hj^iB;?cBGI@eE^w^zy#Mqro{G$FYI0yt6i`o*(A`=^s$_xxyb~92DQhp7Vbh=C-P_ z^&B%ge^;Fj)??vGEV3TMOovs_$8Rg4&2DtV4>~eV>ESsVB5B!ekyF&?;>*~+o{Um;%N&6Hf?cH{&PJh zpeAWUOMH`F+fmm#(${(doq5Pc#==ATB+WHD`9k94``!f2H|Od2?mC*AMoxe1DMz^E z5tfN)b!<>*(D6(p6~tW>j{&Rwvw`!9{A!)ZXHznR%!NQ}g&HArh@o>_WzKJ~7-1WI zkYq6F&peG7wn=0ZqY^JkVL%o{tivDFk7**hT^@s3O;ksZ1~V;ybfWUIRxMOM<)fkK z2At^&_M_1{9UU!wyZh;jW!l?gdJWUv{3KmJoTr<+!*qKyO1Ia;baNTu-Hn|0yMDUA zpQMksuhY-hzZLCE9T?QB*#y?ZgGbUiK;2)Z^znz((?s zM7Z678*|1%1RFNywVd*oTdad%+3?0fq%x!EjbW3Pe8N^zpO$7B_F)hjJM52Ci%<%eO9#v^n#y zHwLl!W0M*6(9`9{ycxtn;Xo}Ko{KlCj#0A1i79ziy)2{H9h-PuC~U53Dc=TQG$_qI zJ(LAcp*F$&fn;p){A*&iYu58|lnxFvo%D-)kWioYMVj`+(i&~04Bg#UwKG~vQ5hFP zGf}^*mL0yl=^)+Lye??2+I(^4f-xi3b}*Waiuq)8nzATogBZ6hrgZx4>-74+`mK0s zI{xQBrR(pxJ4YKW`cQhtxc-+xbYs)XRlR6uwgpHWl)5hOV4RRpojPCqq7L~{hD~Bq zo6~G0y_tkQ=9e9P+FH&g@`z1as+%O z$tP9$q-E%6eF?p3&-&JXEghaf>}wPcLi94`a^tRaMaNvuYZlH#jC0;+YBy0+J) zDqgLJL7y?V!TscRM87n1&3_zw!+u;5on75Y?|#}pIrNE#GEX*o>_Ye`6pw@R6Q{W~ z+I5**=x5AhwdnmB*v!oiZqs6yY}-Z_V>agNNOniRq7OWLob=etHYQDeE*t4MSH4?K zJ9&e(oo3nAFTZ4*WScg}hRg%|_#^>kmZ33*E~JI7Lnsn2K<}s(p>^Qha{Id%$+2DR6+&V1Wl=r z9e6~GmxS%{CUu3hm72)rnQH5xkg@J@Ejj4Ki9d9~F&_*$$%x+Cn4^~{XFh4b91H6p z583d05|LTs7LA*cv0JtaYkHxz+Xjis^q+&&VGd@*J~Th;j-?~K=r z8x^vrVYjpPx8|>B59v~V!R=h@5#x}y!xAReDVxlE^PWgFfhAvPTD61muZ&F}RLI}1 ze4&1X(Ut})a8{;;f5<7QLMs{=cHYnjlHP?I8gWVkZvI{$2(=~~k19OWS~9WBG|*Zk zO!Dhg+ka*lJ*brCuKxTU3+0sj07BLEhD)KqcEo=2pEcuEb5BTUSKl=F?fY>}@smK` zH1O|p_$c7H+j|c|u8b{9To8>QO;h97hO_l?gjGf(8l;?h`Hw^wGHtsvLGq%b`702E zEOcP7m5wW$0={oP?DHMPaA2XdkQz0+pgG#RO0SQ8OegynX*^tLam?o|S}2Ebe4kz) zf1kcM`Aa%Gxk|?;i*#_ZP6tP8fA@T(Ug5d)i_4Sr=MTS6e|-OU>D~34G@VVfuxmp5 z=7&6GnAyVhYM{N^Sc|^wtt__}3fkvQEv?odnqH^g)sLw+=S{96ZQ5JfEX;N&3rL`B zNIra87_@=#%Sc(tuj4h%7S^;o%4%%!3@kbZD($?CxxAtGpZJ3M5s7@# zea`cOTuFt-{KUW5l#K$L3p>@tiH`&N#xW6Hkz28p$`{@IZ zW%Ui8XF>n5HYD7N$Oea7B+2I)N8;Z6+3wkmd!@ceXEN9;)p_Q zY}MY@)u#qjMtO;6EN$Bc=&279C#s*q7qs1FM}=%AY=1GsriE_{=`*9^S#Pi36;hjk z<6h}kpx9B{e9JbCv0Z)kg13J7yqec5;k_E3jzgiiogZOCS8M~?78)nvWyv!YZaYOnDeNU_4E2HB3|}3 zyScZHIPU}LSl?~18_mp*?Qq4NlgqQK`_0;K{R+108L9qPKJP3mJgpoh|(V_q02>P`-eC+t?(ShphrIW*b#rMEfsGZo!?UnwviPFq}>;?_xwhQG7&&BUhcBKzEQA!vW1tecGy?@DL zSW&f8Km1F#*dygEMOt&9!mV-CV99TnS#VA?>&*^SVId9_Ex0XzS6-K&#RdA0IChs! zv`+YB4Rw9|j=tgP_pJi;a{z-U4NovYMuw7ox;_3v-#>WF0HkT?J)-m2MS#lsG-*Zm20Ga4(u9RyCGlE zFQ7F-wduY9wW*n-gfx_vwhbusA7nH>BXw#l{A{>_6^|{H9t?2FHJZ;ZI%w89Fig|Y zw2H>&ua^sL!T@G@I|Gi@P`J!`;{EW_GUDYr|o^rJE1T z=*XbZVzhWjeVp;-Om>zHl)t@5s;yi>=Z*EP&1}I;V|$kLuSDr$Xk>hXw`G^K;!!o? z1!*4}nr1vy^`DKEZTMSPaoL!+$n))L-k{5d$~t7bdI2iwTDM|z4w6PTrzIYIH}Xrp z+y=_%Q?Q}gg{9sOM80L!Iz*arvabXB`HPcudZx{jHUVeagdA!Ebga$Cu{M5e0?tnl z`JsY}sv5FQ-heB`qNvo|!4)EmXGScLu2U>Vj&Ds`=u@hOhsGreo)31uyEFFLO zGQIj&zqKRq;lF&JF6Fett6U{9{r?%LaTogH6md0E2LrBX(q8Fp+z@xLXa}r z+D~Rcsp_j{IAX=-l+_3w=ydsubO1cVQERZ0OEEStn^C@ z>Jsmixx7N90qD`U)sB1;#bZ=)>~|!G;^ndCt2X5)%v){b&+P>5%Msz=DjvD*(ay{} zqxG`xA=^ls*s#*Rrj1RN=OcfLG`0boKgxxawbr97x6qgmKx7BzQriXRU28J8P5TOb z9!DNe1(kL!)eU`uL!f?3zUD4hAUS!-`~y8+AZc{QJ~;#_>;kq2T=5YUc-(u<0iEGE zQxV>?;=Iez+S7W>3)ZNK&P`h?bbm|FiN*r!$?R_GTkq|ZWoIO4QDM9OUk$NUGmc7= zb3_dtN*|odm*>Yiz8t0(a^7DlWE?Y|M=G}oX^(<^wHv2(%!yao3$pVQqwc?PUX)TiSD#dSc~g>xC;q zS0*~%XGH?F`e$q(choRQD3Hsob@gqsO)Hbo%V+} zao7BpMV>r#r=by8-#ycRgkQDT&l`W)K6SNkE`!sY^YS< zG<99YrDf<6bex@QWYp+-Phs#>H0D5_S8MDezFckR>cG*_K{`};fTO#IV>|FBi47K4 zI()WN$Sr-|XllTP4Kwe*3i1PAuv@kp0XF9J6B}V3N7&OQh0Wf+oS1#}*+d%^HembO z2ys>ASPuOdqu>;IgO{Cf+9ZBPF*k}XPO?;pY|*Q-5r=9eK3x4{{?T7J5MGOGUKtA< zy?K#d{rzwJ(x8w3_!nPk=eA}x-KG_dbwXZM|F4IcKmCaf)ec{&!WPP-U9^MzrXA1u zYtbPikRQrC<{A6Kpv~ntT<#O>D&w)Jfwnc#+)t#fFZ4KRV9@RCL*(Xkk?nlb=d!1e zdaC1jOMT`J^&kD~^3WgjN;FuNd+gE<^vPw>W+CZ}n1J!M#}!D;Q@-On*4QQwCliN< z=XZHV)+cLCUu0LPKhF5O9ZfkhihXh$y@4%dQT|y759SW&yjXL}6~}V?kFr_@vP*tl zCiHkHW0ii_c+tFD&Ut)krnbw0XS}k8FkWmm)(7IWPx8r8UB7=Mk8d^8SJH5jhpc~l zduhNk@*_@;vm+?F!38~7)3MVg-JpK9@*YKLNdME0eDV<)<}3aSocHTHUqwHBb(+R< z*60&}y8g?0FUYpX4?GEx#|>Slq<>HVKN?bm0ZrV@;DyDBW8!yaqloE#rF*1`p9lHX3`*(+1`fA^M0JGPtGuo@eAGgL%g-?VN}~#yFoq z<1RLMYB2hE8a%ofW8j)kilUg}v*}E8oACu3j%}h7%ZZL>?ECy?e3kL6|Bc27@@X=6 zl_4MS+92Na$%u;v`eV$~rg$d4>^m~jUWH+QQKNR&uZ^^0gPXbB#ZpEXeb&T1PC)WS z1J-3NjQr5$d05wLV~4kh6&PKYh-~A#fBKA3*^&ZV4-1vB#DCeJ_ftFd1L?Q0Z9zIC z;;J2rhF+vqXR}^zXpFS6W%oexHH?HBTSi!A+8Rxt`=`!xh}|>}sb_hON=DBimEY^{ zW4cW5R`1jM^~d-O9G@-EGF!T4{krJKT7r zy{YFj8Bpg8|Cw*d(SMo@9@5F)MLOC4kPardX*|Kf=I!k3wBH~O_B5Rzd`K^keoQY8 zeojY|n=~3}Asnf5he8%2#;Q=ubeb>s(*68UxSwVVzWXi5CnNFYVqkoj?fY5u%e&X< z`tDc`yPWd}=(4`noA%|+hz>GFHz}8wIBlcz`40K*ht!+#?7Gr5O_-ueck}A}UxQtK zb$Sy?A$Q&{T!GSp9%#>g5k4l~N;JkvHg)n-Tsz4_hLn=IQ|i&-q1HIF9{x>671 z;LwEd$q22*>rZhu*^w_Se>LAvpniv_(3p|oz1*Om3_P<%1JRNK0< zW`j>V*cE{lKyPex+t}YFHV5^nFBGpO-%3^<2eqiXjjkwq?%+87@`b;PeEEkT?X+_@ z2aW?9ilz=W7SGMb@mFBsWn>-6adfSk?{q{3Dp3EIlOw^a*o62asG1FW%nS3_He`7l zUPAtS6bna|lL%qsNZUbo7|y*Novc@3*y8s|%=G+~JaZ9HCcPO`o-e{?zPsMz$j?Rw zSjxKj8LX@0Sc%=xBKn?ZA? zUMYJ53!jo^BU;uv+Yp{ve(SH)p-gf2eV$)JpVXnh-RBugznfGva^ijEoj7$EC#H|F z>wX-LWotI&!K3JFURfvB6JK%H+E|{`Mz;d4qaXJjA%E2U6z0DI&O^8CVAgYzaVJHz zt}Ogs74G=jJ3sMl^P#HhX4H?7lMZ{whkkh~$Etc`>%S7;RQcN6m3*%e3fs}o28`?r=r&Tc?iD}W)$C$ zAw(XHb6%nC;$!)rgIRWiC9lX8T9>R7<=CdIS2(Rb&41Pl#?&uCuV)2o-JXf+u;3N? z6pWK1iZ`@{e@D(Ee=2NfVxHypKLhoHwdlaS7H!uJ$33No-ZXub!~XO7U3$0vkZ$C- z&$xfVebBDcLjH1GKgL%1PAqmVxQpgjAQzmu)0xk{@dkN+{%z#^TAqIRZ_s6p`o2u3`xoh}lYdTMpZ+18 zAIW(?n5F&0WjZ`s8GVbpaI&Wjw~Wgm=ehE^obK5}yv?1^apA-LDBa#4rH{8?q@Qkn zo8I5PNq2V#Dj&uz?-fFSeRrDva`pT4FVUhJ|#(j~9NGxGN+Z3o?NOj4nAX+kepnOFViN+=lh zB3()&pLCrUS&Cp_AfqmQ$f+D6it}_DK27;t_HB zf!p5Vt;cb-pXW(&%#qE3eX5Ni8v+jab8VoA`|~t9nDLStZ#cp{=BFQoD@FeHBGkrG zR?|fFHtMGU(PyCRDHPgbj?`n;`t99`6?ab`c`Yxt;RLL3AoJ~ zk>xt9Fs~_v_bzPOES(y3SGG*xw{1I;7%rTaHy)2|i1 zni1={ZKFR`i#tf53!1=SE2gGp&E>ZEu(8TZTcId2El>3*6OHe%avO3TmBo6jwl!^v z{08;YLg<8XWf*%Z4}BTWBvj^#0-QzY$lxj|))_jE51{k{d?ownz%R4oYP(Ma zYAl2zs#EFR==xW|%r76KkYxx#N-B+Pj|28it8{Vw;IVsiKTDT459#9OK3(b9dMk{p z!kh8_ptbQc64=jz;}7p2UfB`t)w9c52-5HG~=b)Sf#XpPBRMc5$V4-cFli87Br9 zx19LEo>!K4pKcVt(E5P}wxs z8_;g%34JQME>ge7!n2##!HB>!qtb!xc&tY`l)$DR9>v0=#=>vI*C-X#gpjX(p+T+v zl=b?BNZo=hzL|G}N~>*!Hrg8T$Ol<#%JGyqJOZO{0yq3wW57Bu@_pA;#yH`&i>~O_ z#uktyzolpBp&x%6{yu4L$zi{Bj9ccl=E3JvXdrwXxAd)au&xzuq8s~eW3gkj$rU^} zLY7bD^tcNZoTx~17uhYncEKiJ*ABwc=gk{+&((sHrC?)MJVzZ2dbvp)H1l+L~xuEwXdV$i?6=%si6 zvB&q^)l}38YvA-8o~PqCd+F>|IIRy?vvmK{MOxn7n8FGA{wHm!bpYwF*a&e}GY;m1qoZ{2#aY@v=4$vdefVjeZhyK<>xUbQH=xXLl6uE4 z)9}UXG(6l-i|d=Tc>7~o^BsAZRj}@B5S+eAgRg(@y~^s{_i6R@;7H2iY7gwTgY7u29^_>?}t3X`b!!eLXi-+_+ou@xN9Hr|& z{eRPXrasLxgFZk0>P5Qx(_8g7pHPgAwwbkrWpI8(Hv_H6GjYH7IAA-1*!3m2h&2%CIh?OW=6d#(6$>mANKx7kMjaDu9r_74v=?q8R5teu|$ZYuKw`Og6CglX8EG4G`ZSK0xtPIzGy`nFg)8@{T*bqubG z_-(yiD9y|CwyNs;t=1W=9c?z0Q2Ekltj%D5JZip|Yul8?KZy8G*sbOSAY zRa>^HbBcX}8vu_upgILlXz0^rUQ3Hm0P-R<=etfrV*;~xj*Ey%5Akg_ADO z5j9OXw%YJ`10HqCRd*v<`Z)4Hx>Icx$& zB35j`S0(&>KDoqY2;jSlzH$AA7YJ$$_O z9Rm$tbo6G1WL5cBLYx4_*1|?9@`y7Alq$v%5REIqVFRZ2!=jgd_;8ax{-FKOV(Jql z5XRc=TDF-_nq(P1Nk9tz`r|G0eq2dLyYN2BW z!aU}JbL?yK`o?&sjaDZ^9Eam%5Cxe#}MryjT@^ z@Z%G9=xH08MPBzvtMSzLdVq))gk0?AcI5huiP7Q2Cz_`>w;I!NY(M($-=*&kr|H%5 z=QJ4ar-2+3^pbSx(b>1cr~}Ap0VE|WMCYFhnkvzchElIfTS2R>HEqLh2W%M#Vj+SV zyPE%N*+#vY(p>$-c<{U=RNXR1ck<~%mnI;uRuw>3@(43ZpK=Vftvv~f)mPH6@K)N^+|vb6azi_1SIT!TV9D#v!$QV$}ON z68r?OdQGZ_*x~ zNvk-3EEQk&SG|Q;OeJ}yRqkGtw~}`&lIvA}d8u9Or5MP8Oc$#4u|Hg2uGfnzHR5X3 z@7*kyz59NDeYalE9{T<9{PtEm+~u$Rj(dJNowwBbu{%V+5LQMYYRo?@1d&IazFeg7 z=pl^2hBi`n@!tkJH1$DBa(V(w*?(VdyL4d}i(P?mWG}{VILDeUqm1L)lG=(f$R)gC;>r7 z*jC6%{nhmK9}5PzG*9GYt!A2fcMs~Ub)2a#^$E97Qn88c(k(0Et33btaN#oA6Ib7c zDPEK`(%46)__3H#R{BE~jI@t>&KGLo;xu~3VRn*8YCef1e=%O7ogoUDTDSxF5Tf|t}Ww$oEjw)eePSz;` zYu_yZ;+XqN`%G~*MB4bUxml`DAC$+2Xcu4KrjIf(7p)!keBfXc7@MakbGdBgd6|)o zBUg&pMAIi;n@uY^WLoq1vD2h~I~x9rvZrywqm>75bTQ^M%t7?c{T>x^+Hw6z&&()j zgg(kNu^e}~LT%z!D;=Of$#eg^zJA;v+E&nZB{$sk2VDt`;e2C<1}%yoGmN-0Iib_k z^It{cR7R6?JQNN6l`-^<_0{NutZ2|N+aO*X$%4~Z&b(-E3so1$T5Nc@UjCz=>6)BI z->^&dS9HZ5SzjpN$C%vMOL<1x7ky2deCBVQfJ3gJ=~Mb4WTRv0C)2>c&2l>=vO}2ay zSSJS?eOstJ^vY%Io}$0m=t&PM76v(PePn+(PjPO42bm{sfAyzg-$L&zwKw;6?wfTq zC?ag~Dp48Xfvt9;prOlQgYYcJCuM+fOv=X~ zhbopEYX)nG`bFq9FUzM-I9B>jEQRo7j+j<-ILHfbCFe7q>Qi*(eFpxdo5l`zFL1Yl z`KWGt50YgFS?i0=KK@qiC}E)ZiJ2(lFEfxejI^s9$Gs0xG0ioF629959z2rC9W~MFG8_JG*i)ip%C#kPsf#4(hZW=#V$=o zwX=<)-O3A$!A=~03Rw%Jpmj69&@Z@{SG}gK-T4vy6Z1yv z&6+FgV@cUld@uFaim!>1S998-&o{IQT?GK{YOG#Sj(>EwO-_Vl0AH>ZC{CkK~lGG30<{UzI}euJ7P)!R zCU+c*WWn62G<$ZR(&Y~+U3~BFs{47jJOITm_&b7;m|SI|nYHsbgCcAey5s@lH1W_c z1~B}wZK;=;<@i$w&+eq zz7M7qHoT0a3zj_b1B(e1F>iri6sE%YwKhX?aO0p!dC2dg`4YC;R(MCBZPJ9fjx%Uf z7ggqiFSpLJ3Bj4?7Eh(67bMYU^wNysAPs6GRSw#|x2mU;56zE^XqJ%%6#X5~I>&gbWPrJ?-jFCnUp5}lTRwUS zp@puCO+GYWh!13Qs*NCm{Z%>7*7m}SSo9iUN+c)I8fnWa`Gge|Ace=1^l1CZfHY;vgjV+uGoKN#GV*ik3=cLe*Ct0Wjgxnl=By?M844|LwnrR9hd7c(Q zt$64}+G9xTP(cl-JmzBC=^9nt4NvT@glO#qYaCh+=rVoo8Rwx~8LzCx)QbriVL90X z4bZd=-EE6(&#VByt^&MvSL=IfBY21Ys^GNnr-B?3KR@&n*c&7ldwug*J3*q4Ui?*HzjnIMKrEbLomV~6A^;hUKhDuQe zk1kevv~?b}Wu`Yx@8~zF<-zVcxL=L}Sc-Nn$^=xUL6g4tNs2c9SjGn z$#6Uzjn5B9XRp)n{Pe!R(#rb&<3aE8FSotb-4vTh8;~KSMSAZf9lRW;qf-{eVY+^| zN|)c?r0LDn2SJZBO;G52rG){z?s6q{YQ$ntyzs*0+}_E#p>s^VY(e4qv3+ z%kNS;IMb$CoAaxm)B57i+>0-oI2i$H8jeN#GNrSx(|TXDH}8T@PPzGHx@Nku=>aK& zFAHj!41!GzhzZlqBS&qC#G_EksS8G}Hm3$`Q~`GCf{LOvrmbmB)~3xIGUVmOw9y8j z%iZ}!Hn2;60nt%f%h|=(mZ4w=t2p56z&U?NAJ*sT58NvM=l@??Pj6HvNAzGXO^)`{ z{Qg1X=iYUg*ugAItN2>=mi{?ZR=vOi6^9lC)utjeC3U=~&D(gC?jEN3S#535vQ16s zc+e6ZYcqMMI$UW+ZMd_Ne`|RTSn}ei!{`+EwC5g$3~Y@Rt|3HRBX(1 zNIX+{%iEhJk%KA4jG2M2eBH%!?^zAEMEuc}7ftbEx`lM*lTFsu`etH-grHO?VNh-7 zHN8ch?syb6Zt3p&nrf{gx<-tS{eE_&0 z#K0@1;_e&eqbK#KQ*1Wj`ycCPJVguw1WrUfWYT7{Fq9@rp9v~)OoTb%9bU5v_*loik`lCO_syCOO-bQ-f zsQ$X29<)Ar3@U#r=bk>C%l^n1sXyRt`RE~r@Ixj|Cg#rMV+^SOBg*1yCpOETnGE>zMxnxw-w=W>RJ>E@^R>F(Wy>WdJ=iH>o_ zo99PbQ|4Na7IXR`blZSN0LqBA0QDeYEOSB>dgcJ@HGrc@lo!Zx2UDC3r=RnQ5XJ{~ z$Z{N4yM2rV)n?W}&wE3yPXJZ8RsN?Bx9P)Ae@Tn!oprFj(8C8&LGCsz)q#u~LoO)g z5-zpkxR5hk-~7;nxcZ<8iKyRgo6N<(S!c8`4dC|1Uay8+DpjSiifxXPSpbC@V~SEv z+hWxUnE_FWeqhtjV|m4NruH!=>t2K9Dbq-KO|aqb@vL@ojN)#D`JIkYngzh|@BXjp zw}-RzYV}jB6|z7;`1rm~m6==P^-X%dVdb?YgA8YBo92QLFVPo%?jt9Yq(djn*+|XYviSW&SdV zG1yv58aspzCAKC0nXpw?^Ov!2IUesJqYXQxb#=7jVYgDUAt^i~qmZ-j_lmA{ytgWI zJ!Wf(2Ph4FhfkBwMPrV}eXW%`qC^q5%5$U>uK7^=T1%N0NI9Qco4A#FrrP(CcB>I^ zt4i0ZaVg?Ug}zl@Oh0OjUJlmjO2_r9!D@N49`^3%^UbaDhllgU4?pa_ResxXe=W!T z?Z1)ZzTV-uPvy9;4rG`UEeNOmql44^FHX)*UQW)B_wLRfrmNErKMzlq7ava2?DnYN zm*YO@9rSVBN5j$N+mI~`8~2@KR#SOOXlom2XO185mJ4lqQaiv-jR{8AcFI9ktqU~TLw zAl8yAV8M)bhrC^2epwc0!3&sQM+ZnvQPH(wLtpG!@|ww}x@@*^+~2QH(;puW)6Jj% z_jtx#8@zH`+ENZ$Y(A(DJ|Br6t(%YX&lShK0i8;<2p{a(^>j> zbt}hRPK(Of3}P>Ige7Yon;$-zb9$tMw8k)-W;V5UpcQ|3n5RoQmpGrkIIqt_3OLH7RK8`NmkcB@l#obNwhl0Bxc!}QC?KEC0EKIS#9RN!y43oD>;O436S)H;IsW%*i)B^dHfgJb z<30(;eSWX?8db$N#(yR)IyQRlP?#FbKNz@}A9^kvu&)nZris=goHQKj%h|0QAZ^lF z)AYxQ6UG8Ha9DAIn5X+1`wwzHaLlngZ!JF5T6sCUODEdYaY(w=oH-pGrhBcE3)VGp z!8T(#s&>Gn3O&TwMb=nOm>vJzw>UZngK@f9Ow++=;`x22_~~dreUKcS!F}nDhk=?z`?dikJ(+az7i?__hW9s0Xl&(fLX z@M^8Q#mu_HcPdAjw%w~fP9x6bwe&kdckvmCC;DHA*MZ_Ua%PYL(wFDRp52?~c(|W# zRhRyveGiL;?S<2PGrv#Avgh4uX4*ZKGX`EwPOK;E0#5vej$!BHgLEx=Y&sS#ad@L2 z_Qd7DaeI*b*OOz}4VQB5c3h~xUW^aZwREE0=<(s%l9v9a}Pj_e6IoJx?_@Z|5`HU=Q1iFKxil zXG|Xs<3(hbtA}(x6i?ZmF?g)8{C<8TyC0};S>u;!PxfYh2f(RiIOPE`k<0CR-- z#2Dm+1U94`{f_#R^l^Thjs_E-ykPzuN&W}5?Xb`1TzND}>x$&u$sRtDpnTT+?FLpnQm;nYT zupKw-b^^A51jNR4y}R!T*jX$_(l#e(A5`0vAqUW}+V8k^pkxDuF2*aRQ4U+2H3Ma( z9sy;pWum|gnQ9wyy)IpAeVF zdyy^h-rQ*@qoQp{bZfG;p)z3$8umnL$GtVKGnhDPH1&wpWYWXyo3fck4wcOX7ider zh8fwXXbFhxrUGQ+UdJ92dg`{d2zl*(g*JZibL_bDE%v-3Xn1AEeIN&#H_gd$@8h_0 zes(>TteJdkIqnIk@>UG4)ef9?VLao$>dSFoujII|<+u;71_L?n>)!ovxW4Q6Cl7ab z({6GKCy)VA_qIY~cI9tVddG zb&TupP4?2>$=Q1E#o5FD>EVaHQF_>0%zKmJ`e8EYEyl9#NXm>>%l>e&7!8(#qd{+U z*k2EZz3KdBo`C3*H+nPJ;uZ^4zX%+Q6XMAX}@5dy+{O;*^oGXp@6n zZ&SYE)#RCMlNa$#p7TuoQ@4nTX$#&e%-@OeXRR>PP?C7FB+VT$7f%(1aNXeG`0ndsUzUZ)}b6uu86a^a1{loi4B=wgkv6Y<%G6vj1(-u zfi~3R{UdGcxN6u-6F#lxvd|5?a8)1lGxK+HIuzgEb;9~OFJsN8!8*UhqXKc9H}u6Z20zLfdeGW7?vK*(WZzCbbU1ayaU!^~ z$yId@JCxzX;>@1!9odnAE)G_5UiXjFt=73~IVw1$XL8_{6#_#bF(6FkL;m`>^Iq87IjH7)fM~yb%Owzx$h2m_G4z;FFvf<06R$M?u>zV#J+ zt_m-OoTS)SeeC`qTS!eix7Zfo60i9B-UsHNtkhRo#^qBTgLPf?%to;huQSRi8YK3eoOq?ScQ9c(TsG z<4|4<|URo7(lo-iiC4E5z987M>bA z*n^V|9A}Y7-%mB(IMHyZb{~!RGzM1c=L6e{IfCx@qTyr_W1TyH?68Z+v2^ln%+kT* zl|BZi(mBl zGR+opobRV;c6Fat(|l}#w;K}cjE@1zh?yBOAdApBrsKEd0o3C==wG}#Nhe49UZ0^o zKG2$>e8`|ZRQmLA&;51JJ72WZZFpxIV3P+I()y878@e{4^HRsLy9f0Z7gyBJK9*5V z8)ai4+BQi0lYaXBn`Qd@-z?K_zF4KNU#!#DFNH6b>C5wF`s&3ZeSN-g_|=)>pyJ=C zjQp=(f{IhFI;L|y;rS|k^)m457YbjM^g3gvE12uS?A02TH@H2y#*IK2u*3iuzx7CLGFeiG+mWnaKn2W z_0vwHSCe*e)7PM;i%78Q(|kAhX*$+{O*+f0@`_Hp_}oh5F&7Dy@vEN=kKO1RrfXwn z6QIVLUeVYSWx8S){}u90ETYj5PAa62>1+CNq>u|rgd^>n-T#!+zoO04OL?Vj>{BTV zf%_nThj4CY$$q!^K>i>+yKCy15yzhQq7%{{H^@?c2BM-~ao6 zpZ>@H@qaApwBdKZOXGJMn`uY0z>8I=8rkm-RHqv5H?s*ep81+FYW{bdC zMiTm-#8*rU9a)bNxDQbg@FWi7?Bk&^F1o2pf=JShZ=58<7pF ziXv?!&t;isZQnL#nH7@1Q+7ehJN0Ya@RAO7yDD^^7xyfSIVIKOc|Gz%|7{d)#;Bje z1}j-ggO*X`d;&{-97j8)ate9VEZPN6m7}AtxF~GZi!+9PA)7YPTwUd}H>~_~ZM^U= z<9T=KBs$jtiRZNSX#UjR>MzRUjsV{3D}}^Q29{L5Ys+oxtbKgK$0r)dXS0BfMCa#v z)fTDcD?K>Y=2?b~;?bw@RK7w^oZ&;yym^dUIC;q)Z+hlMdhn#K&(MQW(|T@@^bV9> z0Jfrj(UWgxb7unlIYIF-lOv(9Joijp>n(b&i1=h7malo&XbmG&GEzm~j14V)43=~U zEyuD-yO?WXvybze^nP}2CjdI0q2?+q&H+Gw&`ul(k0{lF_U*%!ufo1l__GkF^L`=M zR89nCKi^;2p@5cKw{K<-4&!RN#+d4UyuV5xwMKFkl`ELkd#60ELNd0RXFK(GH52{x z+D<0*$wL-S>r@ULS4eT*z$@whLACmw;$HRQS$%HxUZ|a18GDf24~ttlkYOuX)x6L@ZmX8PG%j!! zxx!lRE0osmEKu~&`x*iTNSJT-X zF0}Dj3b~_&6B9RT!&El=R8t~lB7qhxZT*zISkb1Lm(x?9ddvz?VK-fFw_zgItKAZz}_V*x*_EzEY6B_FPKV@s-sP~&Px|(~`t$AdQue*p ze7R1y;_0tYjOE}TjMI>ls2bOv>#XANpi>33f&(|51t>ANrH>2KaF((je`w_mT* z-+hzPzxuk@;NJ=V_RF5=*Xeg(YX7SA-+U$flC<~`zNt|(ZX8 zPx0Qwbrd#OcvSJGP9BF{6m5KdHoxzt#czY|XK)t}dS4+(S~V0F%y~^HXI$fAZ*QFT z`FyXOj`%F*wk+a4*`Ja2sJi3`0S`LHB0fq#?Tt0&gp)Bc%1i&KCo=Pl_=X?(@Z87* zrRbyBv=>y|wl&|X4dl7)pESvNBqJrn6p!HuFdGI{pMUW9UhY zxnmU5CSMGS9vdAyx)dxj9gq6H^Rw_W|1u8Lr*2~|S0&0d^Dr?Xf%Pm&i59 zv+bPpqORr`kIo>!!CKd@-o(*Ee0%T^Z^`D*C-9U%=#SE1$pc<-0Yah#@uP zPR8f^d$Y5L+urGiccYWphYu&~ySpPDnD@p0Kx^P+)z@@6{c_Yh`C>TOJCG^*gVp_Y zZ}s*cd;Po1rsXn|45bDio~QMxR$*>wN71{FY5ndGDd`~SmC%%+>J29;oqv;h=ie$z z8-we2+DZHzSLn3~Fb%y2AV(b>Ju1Ly*CwU_l-8l}W|ageFi6!L%OwqL>IO7bD(KcJ zK!@+DvEjKbEvWMr;t|Hdw*yU9U8cBrKyFt2_()#EBSKnyfS}tcyMel_@ZFWS3kqG( zuxVm*!6#@waI5_NVY>ax|B+S?8Y^YNl0$30V#a0K951Elldr#{IbAs zb(xJiD#clRrh#ai%@VgiYj|_e)WWpXIF0_{Ha5!X+>VCFTWzJW5%XAg60i-RwX`c}s zj#2>in3aC^Qu=LXT7i&l`*@SQ8${tNy4aEp4t2O)6yBT=FhS8>Xor`x2qaJ)BhyZ0 zSWdBTt^+^X!L9N<2hZD|eXBfWg{FWFo8!-bm@`5j%$#AzkE^-g9=`My-ha6K!M8KN z+CNFJ_fJI~G`5}eHELb^@Nna{(Jwg1JV(tHOv-W2a5T8GeKb0d6MSb!m@C{bc|=I{ ze$txD?chGJsvYQt)v@7s$FF_6J-2#ut1=-@3b#+69~`Ie4qm1o?=RC&a$dL%d9NRL zd*Cdg3u9)nnCZ~fOK%R&-3D~v%Ir$?^gj;aw+AoM@n}y@`-Pp~*n~tEDwf9y8`)Lz z3srZhC!X-IJ1{>q-iNv*}1aIT?_EUw!b@k?e_g3$Mp!RTrVU|YP zaHBIom=9OK_PbgM#tEfljHQ~yAS3W;{&JF!%xQMZjOF>F+O(s&yvHl z>u>f>(%1Xv=}r#qKdCNr?yJeU`c00oV25r+M)Jy^VmhQ z4dR2{;yd`Xf%iKs(--5T^!4P_Clv10r<`Ntjsi_a+v<0F=XS0sXTC63UdSGAr#I>Q zyZ7l(G+&A4WO9&xma~tYM(P9F#1CVU(+cz_`W&clzf*f|R@3z7>4o-hy|mvOr4#iP zCx_VHjg|LK{OM2MQIXfCOSLV=rq)o#qxkQi9HzrJFC4#p`!U^rym8#dkzHs9da&s% z>r{;6j3$IO+RPj%K=lKyMaM_`UUD8DX1*heZ;NAJPQGG$*6Fx)ew}U~=3Z+H+rqHC zD9}Kj>Um9fS|Rdx0MEF;ySPgiKmCvvnhQQwSbqh?VIjWE;e*K_ef46UPPI$qiWy@J z8JrlNbAnnjqB`}}H>y)!Vj5ZELqo+A+Bqj=eWH~*Le#`YvVEgJ@vKkSopv%00QD91 z6u!S6q<5FH5qE)VtC`saa4cYtsVMa5gF|Mb%-c3{GR85Zz{hCo5ygJFCP1FY40S*= zdKyfoW2l^4P8Q7X@5RHr|8)G_ze~S4UZz*6x>X)MTq;26h~%&UOxs|GNNqzm)>ICW zyXeT;k(;5CgC3?W)ZJR_3%HUVYkZt=LheRDslnL54Jh1KJZifk6GRDg#SwR!Hf0+y zS9yelyG{Vh9{e~F+@(-3us(*6+tgPb?+9B}(LZ84c@|bJXgCTKXC3hzRUVyF%4C}c8l5sUvPwu+ z%uRJq8jgz7o>fp;p4CG2o8-*gZ_N9`Mf5Ap1?GsKSjE); zAFD}z8J-2uB)BlhwissEOx6w*c}=}8T`piGe-i4tSr=v1w%UT0UPZ>Pyj@V}LKc(B z8{*=)-(|<$CwanY=gc>op{8$vI^KwWOy{Tcse$^jDDDRJn)OvoMD=3ox=!i`0>-Wu zAT}n3Olt1L;lZB|4y54$W>A_jV#odTi}dR3(Aizb9UzSu^kI5gWKq(z$P6UMzeE5P zyG_p0U&-GA-V}9tPRN5 zm>C}*q(0AzUfrgJ9CJgdVjj=h3tt82s_pscz)tzQ*^M1s?C9eWGQ|%ac>b9a99*4!EoT-dkE_M+Rfp%>|L*9u z>@iJ0JY0C3*Y>CFj9uO=A6GqdTS_}f=!aW2aeT}3@Yvj~Qu7P2E^s#gtNk;d1o%PD zB{t(^m3!WDVV2VG4_^7i4SL3N@!?D`wtjQ)GJT;o|I^*u^pQ48PUvE7EE~sZ!f{r4 zT#3exoKWHY2weSt%cEqf!-)*U`m=VqezY*!L>6u0wscNfa2E)wmQ(TAxtt_Ygk85c z+URhov5(VyrFEW@CWS9$J~<&Lom=id%x~0h1NRa7aP^%#RECmsGT76&9ckyp9SJkr z&wYzLfq(VGn5FJ-k<4^^Z7X z%`DjX#{H3$TTSy1XzX6{C~vh#A@L@?fd{GlUXJ_6pMTJr$RmxJ2|N`?Z6NmZoEYX* zNyrSX*>H3B7RPDnE5bO5pip+eap!I{_RVgq;%LD-!ku1?<8BZ?bkta7P0+y~LK+=y z%VSFdgk(f}N({#<#(&N+4N=9j?a_fgv@VV1BJ=-A^`Z%E=R2a4e zvy3MID%wDJ_{F(jWO)1TLs~q9aW{_pyU%po+fdq2gVhWT1Um}@Xmdkb(G@+E9WB@f zJ7rn0ZJFCz*w?j!3}(=%KPhbTh)ABsO5F~|5GSt~n(^4` z-g8+4MUld@Q(W@t<7O@iq7S5}+oW-59Z6GY5AS8xanK=Gr2kFCpamy#j`;4O9^S6B*4tMt``$M>ND>!7D4VC(`Ne^EC*~uX%nn` zTRc?>mA|QBi<_1cF>#_y+0b%IcBSLedZ7IPcf@h@idtch4M4-E+$di0hWMUn)Um&e=F*15z9$m2CVYlFE?spoJ94PpI9-mX8 zc^0HjMw_Sn5ih8}7G3=pG$AwOK_l@oekgR`>tAIefLh6H!}6DThyCG^`IL5;Czxfa zJh0?HhNb-*85_P@Mzo-9ZUGDRq8=fdlBcvb7V(`|A@xK^+*eI9`fRdWm+P9(1{?V* zY!JKDWkNRQ=mbChLO%KtkI>H3I*A*T0OMXFQNIyc`Cby&Tj<$(6?eT$A zym$R&U1_V+h5rsLHg=ji)-A4%aHm3TLvF<`ysf9k4xeq>KRxnQKSS4M@XfT0wb&pO zgjU$ljNvTU=U+5j}}6GGER-{UxNwbNI4-A)`6)i*}pLB|~wJjaW6 zzP};Y$EoB+VmMU*c@_-ns3nyw6GsTAoGa+i1k#uACya4hY;HYa!;vqe)G=RfjmL?? zlKy0(XmK)m+1#Cu0o=0Av(YBkZX*yLaf^NE#ilqriy|bOC$Nx-gHFgT^Ej=Xj2Mc5 zTiGwCdxk-_qW+ONtT#ei552#%=LjO-3(HHlV{uG*}dOBq{B8)$`0ge3*ZYO|ovJk;xdKI{NUe`+Gl*5O2p1J*A82vDy3O zUAi;R=x^?hxKN*S_X#JN_{R60dXEz<3$=y22pEIVnpf^;_mx8ZJB@r!EukyA+YaK* zofNz%54-XRg8NOxv^wes5A)Gl1WYe((o{}68(G>}%8k+|ZkrE#ShD^D7)KiK3az7b zp$N48(j9x_^m3bgT=|dN%JGTqDL=juPEU3{mUkbKWwY*pHeEodjU%BbwL_ zsoSo{^u|vLd#%Ec#LUGm9n->c!s`~VL2OFMZO}HeR4Ys zz1y;>TgnPHWuST2d4*>i4PmA#zfI4$<$VRbD~We3@t&bLR%^U4uC@01T}6Atv^UA` zHc&ZCYd#=jgS&R%#k+*|C%hktIYQYEU5j1lE0sxTM$%b#0Gbl7pzxv4V**rP(LbDE zWAnm`&0`)jW~d__iZ1-YLu-PpAkiGp3Nn8JL+?QSSYCmWvWjkkxtbO}vX)ZF%7|>% zhlY(5^Ko4v@3ZqpL5mOJNP84W4Ez2)YkiA-8>B)?|F8d-;|=_?T=$=TdXp~FS-QP_ z;}?GE&>V%F2<8}{!F?NSY_Vt#IT548jisS<;4Y*rqml|WUFCT9?mwp9^-sbd6~9P5 z-zwauH!{7sx_--*_V=kb&CjD-HZ(-hrJy-^RzcJ_Vo*+^$O<9C$*fCDINXGc5=iZ zmX129A1valFgPYg9gH}eEX1Lw)qX5ZJaFo)n`H3Lg1K~>bAmuR^X74`z{S-DbQgR5 z;Bs>7JXg7`2Y^s$7_UMcB%Em+_K#edpUV-%narBf+r*GxbZ~tTeggW(R}h^MZH|pp z)F~Ue=o=O(S2Jhx5!&$+k9+BSD~A=`xa*?yCBN{ZKe;WOXZUF!a#&B$VK~595$JAr;UzpR8g0!-cB!z3OCQA!s2jP|(m=`bCf9jCG4X31Zs3wa8~BQ||inb45i0+f7O z;!8o~dH#3ma(q`Fc8L?FQ4ZJ+h0cSK_=b1HtF+5OctD*o(~;Pu3vG_m&(cFmIL%eQ zzBaM_9ya7r62_)n>%mInFmR;&k@ATTdJE0%xp1bjGt)kFYV5E0Y~M1C2i#esP4JMH zMP}qhRulD)9FpPQC~!RREw`LY86po^qSX?me4G-EUFnIfIFW3W&6@FPd%95`8}YsN zWn59ugN5H%rx<_E+StK8mX8;tnJ1Zl!N`9Ep^^N>-9wsQT&MM1Hlg1$?yQs51+7b? z&o10mzhFg|`55YgCfTi1;w8UZzTrcD#L3%Wlii?bi@gY22p`s~4aQvY@?%tH)D@D? z2?O5q;}Zvz=CVf-86CN-d7HkBIQhs@rCe8e#*+RuSa^k;K;@Tsht|hrhnq3u@vaFl z9P;91!dNFLQzZ_l4Z@pa*Fu;q5{eRElPf3pZ#qZM1P264^5D(DH zUUBqtb#*RL0gZB-WI!AaZbS0`(O)!D3$+eBeI4-nzDmJk0iv%u5eEL%MyU62ll&4n zJL8J8LD(9Incj6&4qv9H2N(k{Fw%iBSaW{&ui-0x9jxmG7G61@wzkT1-V>Om#$S_` zJY)RDpvy8^Sn@YzjsC=yZ!CEYmNsQO(O<3nz%K8N%x*f@MQ7LLfK(1jUHYnCt1S2g z<~+&^*7+ID-*#dHkZI7n;mhJv@-mWcF!RY_lP-MqQ`!)?E3b=%23a*<%HSPyMie>k zDa^9eKR7?`)AC2Y{@OOIvE+xG+Lmn@pNA4D&^%+VJ@>D!53pHOK)TT<4ylpf!aARj z&3?{B#5DWi?7hlMhL*Bc+tb zfibSc{&0Wc+s{R&qC6(q4CE`S)CX*%(m!(Kj2>GcWmyL0ApL+W%Tu9f?ZB%H2MtHQ zK^3cn<_q zn-|sbymJ<@jpPf1U*2Toyr))C(UWz`lMYEQ4{?L{-a(4iF;%K`+D9!!C3-$QS z-hy$?2^O3?`pEqxN(pc2LK<3yg+B!j9z)L`Asb@)*bPzLEDJqKp9T^y>4@!H7mBJ~>`H#Ufb#WZ;$Em_gG)Fre%vfX48--Ur~+!wj7 zQE6pH9%UKf>AW3idSU*9nm=-i?B=gYXMXHAIGz!r3;k}a;#rP^x22s3?yEDJb#aaV&e-+E2R z^V#uIz!-a8zc_wLFUv!OWHcuUgk{`pqwHFv>Tqnrd8fS%oz<@PLk-rvX#2*-Ev)Le ze??o`+5%-oe?=RfMD+17jB12AUa;`nfjjx_KaS`o5}9zVbG<5vpNz zUQC(z>@TKdv`TI#Ai%M1SKmgA2h_HPjW-MqkBzg-9~#;%5?A4TEil-z0JtJUJm zsN{!WG`KM0iNj>f>U-dNy`}2%axW5o8)SfR;R*0r4Uul)`R(kiD z+m-br6bV1p&1pidDR#ysA6&@}y!6hFIS%|paZVNx-%Fz5Bu}^{h>Bh2U>hidcE=KdhhVG zcmDNR@8H$>x<5GUE$&ZOw;xY>mp`1Wr?*F<<+}fY7RJeX&>!^narEX7wzJAy1FYd!CYB~dgiEYaiAW9YsCv+}$MgWx}l7F*tTTszg(4uUj(C(to1lCp1 z$bAByp!L8i*~CFD!d0eYg@wU!>J_@6HLn)b>B4Up6q{~%JqNbs3E9*01c+_I6<)>Z!=cP{SK?*hezPIcJ;*v>htC8AESIdH{QJmY@yI=#%#xF2oq z%lT|5+QQlG^GYWu1-k%Z%4t85qJIr#-0vuAf$DNa*M0Ph0J|XPvHIDDTCi50w4mtE)pq3m?(|E)0sbdB z>r>Sk3`eS79rP+LVZj*3>-^^Tt;X*V>NQ<@`5+Df{R0%e8xW;3Vw~kHNENR)0gdg^ z&;1glu9N8_3|+MgOZ^cqGE;#zH?+^rgB^5uC=k$AZnJZu%DQR;=Xm7he1ZE!h;y|qbpy1I z@nk`QrZ0%2&rVg}K|JD)h$5SwAWc*|O%Wo2@l&hT#A_hG1wrKTS=wV1 zNA!j#fHB;5Add}_4mbHg=?}R!P2M(;&#Vgm%}FBal1rQ6q0oDi?A(P~@P#JJ+5!sD zOMKPuoP=0DaL-L_{EvV8-=yE3EYi#Mhj_+ad_6O>sykV>AQK8``bLjV#SKe=>}$fD zEU+O6a32dAn`Tg5syeq6b$JPP+e09J^lx`7)@Eoibu!>Fp3enUFKb`?2E-W3<6q!D zR|jv~vMs->-s2GCXg3rtH8u@>3AgCS*kW9NmD%wZG%e^Enn4*$8NK zZ`CP@R;Gaw!imxePP*1Dgu}z@t;*4Z>CB0Qcy9qb5aj9#86S+3ns?~FfjX_el0y$Y zwHy4xjUYN!KvZ>fY@?^>KMm3OJ?7dix8^j7_k z+L>R9>s7yhe+*K*v~`%?Horqa=> zH|h;1qxEQS*oz0g25B+vt!ED!-aMTL5Qw_AEr~J#92VnNbS0}S#IB>vk`H*GbSnf| z10gXf%SZvKCE!u_tMRe|4Gv)JMNnBjpN>ut*K=Z{HQ?x z&W5PaeF~mZuPF=u*vuOcCEYe?%feY`>v(}mztAl<9$thfE90T=lcu5Cp!wx=uhPrY z`1bLyaoo2+fK2y2cxYG_9DCa;Xn&2gTg1i8-aDexQ6CJz; z>0VBs83h#&}kG_x#)qoV^I9v2Ig}Srm94B07sH}wz=&9>WBx2eOG?00!8riZYgKg_woM1fBA+&M71vR1 z(^O~0r7FsmT_BEC*>R_y>xcci#K=P}zTeLG*{N5)>T!IyXGi_|mQO4$(;oMb3;3ic zK$@}4^X^xonQ~_l%qnnu5E(za!8AfuEib3Ld@IL&THY!zfUo+|{h+Atg!737B{a{y z=1K;3#xC4;PJgUahSPg`Fic0hP1^Pgo{Xg&vHXpOo0y>_OWUlg(B`Edv7yR9WmD`r z(4ar_skV!<;}H*t%5N8-hi~Y0IbEe|8Hd}i!zAnjqJNQ%Eg0w6JFda*C+vy1EAOPbm@rmFv?c*}CD$ zj~#3weH%g=*cvZRM&9;V5_>UbeVh0j?lC8!i{nb@!775o&KkJlix7T=Th@qi(D2P+ z9ycx9WbzGAsz01~PfX8Q2sK&z>p>c>l)YRJv|_K9S^?K`+wB@k6*X^`zZN6E zRbFwvu`b7b@KJ8@Wq-B4T6Z1ynH=}=zqsT6WjO9>D98Qwbbb5rB;EXc(wp5Ksk!@V zC*HzDjTo)dfSnJI++opyRw?O<9@$)&W6N*_C=eC`I-yJ3bWAR&%UxE=w;|Z_^Ek~0 z3ggeA?LxQiHr-~y{gk}t=+T8*o;qMl{0^REnQn{N(9R9wvTnB4sx9aimP!%Su(3%7 zCU3^ojJL`kr9awn|Icy7odcIQLmkImivVXzOPjn{=-*2o2S&1$Ulu)!4U)_QVsAse zE=36&yb{YljxgLgP!sP!=KCaAPZ1TSKIm(4QfR$)G090vaNH+y++Uo;i!ZhvcM%uE zn4y_I8{8*saJC?H#!5bj*~VG`bLkdPz-B58n$_s&LVai+W%4PokdV{m4Un(49B4@! z?(d~L-qLpvg6pnL{+oQprtA;+d*!yvAxvN2@D zdK5no;OUKM2XY&q0-o>X&Emg1ljAkF{;eNyH;(_C!@D)I(ud8${|Z*Ks95o8@0Yu)yVC%3aAGxQX?9hA0d4Jx;@T@Dax6ZP!4 zgE@B#)VIhQ?T>|A1?{Ej?OmGPXkDRF)nx0W^2Tv5K-_J}X#ujSdUUj(UY;HKD*Lr~ zQum8jCux6gl0IDBrR%$C8q0|X9;S2OzPmpe*^!*+9dYIY_@d-%FE` zwv6IHEsrfi(fQCS9ehVe7p%H!v^F40E2$b`L-f<1_bTMOJwaw^Og5HfPb-2 z;y?U!oBr|Lo$SN2^z;K`vh*)|hOhx^xKG4Z@^^yDA=!Uj_zT{mu1|fNzcSj^o~2bFvab zAtVY&6)5j!HwWzFH{Et1^Y`23*W7mnos#-XtARKSc}QTn?k^;^IPSbvzBumwB;2*) zcHFgoh2y>+d>kx?m+OB2O8$B{?qfOb>*qP{q4_ST-YOs4eF1mlV2k`LJJ z-a$CsB-v0Hp~-R6I~0xc*kDEdQitaWDRb!jNXHzg@*c&Izm=cWY-l(`&x??RF;{lf zX;5X-%}PTjsz?8Vfs7gPl5At4{cGSZ{<5dq z!ZXochjq}|O`Cc6PwAby7Nn2zxXz|lc9fO)Gm!CEZh#NISqJhp7~`cZvEbHak0Oj( z{Z^2SZr(N`ljhuO*XU2RQHP2?P{-O%pF3aJ%ts@%xr{lF?$)1>bWNKPwaijKS%$;B zF$lECplxB{6X`hKAS}uSE2xJFXi@l zuCkZB_S~#xY~*|z+qCf9=9|${6>7Qi+o+j8n*Vm{LD491dvUmU1{dVkd2YX5Yn|XN z;i*4N>)|jh6FNz5CYW;)Lm}l_$u@P!<0{^gXMaJ(MO)A>GlQQ{ zqtJ150axtsX`|c1dYSt#J09hjfHS}!W0Ij^8qnoC(0nB0VVY*wcV4H$hS_G_KFc~h zjXUb)%x>QEu;y3dCA|Z4pKsd!7}mUM+(p~PLPyB_tLqCrB0H#`4R-luZ1jyjWUe~| z$+N5?uh2fh?+Fa0+PZg@j{IHqtNezX5!%I4R%55EYSWYR{4s3thF^_4=!H;vu4$qf z^Zes5#Cc91k~C+ryzTC1)GH*fh2pCnm7hshAMS2LXYTDRhevsiofqHny195c-C(V} z^+^8iIQ3T};ZU?7JGs1@!=Lt(F8PYu@sWeqkH4Ev>idd&>iwI4^FOt(xbLk8cMrYM z!SZIj{_x{u`S4-CH@!bxulfh7b|Ukf%6T|l5BJY{JOklHY}<-Zp{dbnOD!RvqXf<{agh zGvxk``|>FL>2~5P?rEWeTIC4vENL6!fa-&)Wc%!$kTlHwNu5j?SGO~*_~D$FgSpe% zfZ+u2{bKs1@GA8;(9P+zc_)-QnHCdZD>cV&$1a=JnpdvEGBzCLEAFRp3huDJ;*P$& zkZMS#7Qy*k?8LM5#dZT82kWJsgY{5Fc-R?JN}CJp^C+Od2nVCF`f8xQTKEo%l5Y}z zSe^4``(oNBP{ojd_!a*Os^ zfHHB=5R=II1+cMYw{gH`PCW%ssCWHbEmw*bOFlX#-Dp?tGeXjA%+c9w84rqhOgtjr zg!EA!GYuU&?}98Y5 z(^wm58_)3bY%9;?`-C}kaLTqqOWH`i=L7ZhN1vAdYu16P-9#xf()S?`Kx6k8>q2P< zpg3ce3tP0|ezr_^LQVoiGd0iMzo!1h;CUsne(@$(*9Ax4{+sme@hZJcA5))WDRaj{ zEw~A4X!r9Df>vHlo8vp$@#xse{oJmjJm)`;cN@0#rC%Fx6#h;LiY!5+BcZUWwhNwa zQ{fqb!P%QKk2Ul7grFS&hv(En$B-7k2I&yG@8ZzTt7<(78(Va0IGOX96P_1}L*IyU zM#bavK-0}@fdL*_9Q#X_RJIJknu1ao=xl*Y);f-_IRU77+Ed>&rCne|c`gSB&KvrQ zJB}<@+(%Sq!Qx7fZbYvvhfiyiV&)RW6+uSODIHsJ1NQ}fYkQO&rxt>-_hirJt z9RH;tKIX9lkO6CSw;e@?eSu;N(V)xt_)w0!Hpe%2zFpp%x9kK2h<=y-V5fXL3=B9! zmhl;&wO2o2&UiNDIaAuzh1|a9f_m2>xYyJ~R{l^@G0p3+J0U&(ya8 z>>`^~>r@SrAh`%5_UpiMyl!M!9*4o(+*>lp&u!V!B(H%&itLO6^tX9Met=>o3Om`p zo5Bp0+#IFNZa1{fxlD9rux5r{K0w1)7-KNNy1 z6nh-X`o>AV=2)a-!xBd`x2ennY_@US%Q)C*XIk_xb{0^zp+IS&*|`CAS@YvE+mz^r zqJd`KJsbE$!6xAz$edJPM+9ifSJ`0HM-y&%hOuqW5t-j_&9bClq4c z_uLowg>xtft?F>4(6{oNSEg(93|ZSy%C`a5<>hp|V?{@K=O2ChU(0dlR{2L9_Zo6m zdkx;DOUWb54KU3hvPZ-;6d|PPniE&R^#e>i*;72$qO6V4Heolymj9Cbacv9$yT`wwQjl!%T~WP zkhH%1ZeCHJ77`qedryx0dVMS9?6`~kQtq~#_jDnN7t${rcRB51d!=RMX0a#7y*Io& zIOsiSJ$uq|k5z9A{+aK=1>D@^NCjS_@&=WI7KohYz!r-I=(DTFO`b7RJ_aq?2FVZP zheZ?IO}oKDw?W1ei!F<5;I4XI#8@rd%FFy(c|zw!$_H-qBkanBrdVb-O|5sy(@zsO zBBNlZOqmve6cwA7(>vsB>$i!nxSt&Cr?EC~BOL_ybTB;F8>d4dc}!TGbnMNu#pECE?`h!}`AWdy z{v@5MJ}(I3Wk5LU+`hvUM~|W(&*gBHKCaf+Sn><9pXufWt^NaPBZyf*WyA|^)HbD! zwiBp4;w2w?LTwyysE3n-G&wn!6MB-yhbM}^@C$EzD+~y2;qxq11=pe71NTXhOW8I( z<+ATk_B=i{jt`Ek)8zQf`9b$Y{a=K;c>(nGXm2k~jt=ak6=>-AQ%L#b@E~kYc|(JP znok&&I$eZT_NVPiZkIm`OWn_`-{|^F<<=PXs@Eg(9BN#av?qie9NuWnd@6KV7wk~5 zu?sxJ*LE!Ya~)&hUt`6urtx1X%g7w{IFGr|$Srj(JJ%=eI-1+s9eAU!ITTk>*pvu! z9e>t|F|pPED*ps}ZKS>u?YedSU1gtvY6tzXv60Yr0I@>}bDVL;U(KUN@d_t6en^&=+=Nx}9hnXPkt$a`g zE~1|DiI}fsnv==teZ`4GrsVf246F z3hr=|)%4l=;I2IOZrP^<3YA zTEZeJ8!&ug2x&#vF^)XH!g*%v>HTuEuVhHm3$Dt zUipO3Aa^-X9?;w>pJ9i~-33H%gZy@T?iY&O-llZ_F^#A2-f)+#LT{rCsXttKVlSAaKAC1Goh$Rcm3W@v%Rb!$l*9&8mV{y=S6+f`>4Y4A-5W{hA`(jAts7OhU;bdjqZh47o(n?8#W=OUdH?r{C^3mzFFXq zxAF=`UaNgM-Z=5}4RkGffg)_w?QpqoR36!F)KAzmuk~st>!#N(q4OG~?>lvCUM+mi zU#1nKkR?=xPduP+gCZiYWe0)t1586*W8uB~uQ;o5m3{87RQP#!>NRyUmOO0Ku}4Ge za-~bT(r%AzPd=QmU320$^Tf`IsI-*J?#MB37j2NgZr&3pHVXNXKAxxW4dj^X@vOMz zIu6Eq>u0mcYml}?d%}6w&NClhMIQCkO5$a$zy^G}&nUVLGOi*X6jBy_qL`%B>uAs-esX*?+5axXa!v`I)X|Xx&c0X3=wzZJFHu_IIlu{it zby)hExG}nV3sqGZcJ9hI2FnfVXD3=#VCmNup9Y~<$RA;*tDV>lFKCNiIi#$EQ4bz% zK91*f@TjoVt?3(HLjIgCnDZ-?c8_Avbn2UDt}7j$gu=?O;agBG5)0ZT%sf3F%$IWY zYo<2T)eW>?ztYWE>{58Pur3cQ?I>9C8_2Q>kJ1-GN4|J~jeW?A{4UZC#&S7%#uPJZ zD+p@Y7M)jT%`L3}zWZ88COm51=t_IDiUB3Y#KdWjH3X{X{fQRd7UGIR_~4u?#4$H- zrF&Wriu2A}F#P>^p`CW&kT3(UwG-HH=Z5+x02}Q9uDIj4Q@i8-vydtX3@g$JkwNE3 z$J`!%+@_M(!f5yw+R(Yf&7vy%6jEbXejZGZ4N6cy2@`K7^#7Leu0vs^o3-$TSrOh|X6pL2Y)_7c1%FTPCU3%p-V# zncuI*9sDHU4yHC<=+Y`P20dk)@_Jkro=;(>Ej--6zXYk9c{t5qmqwW7g{(|lbZB8z z*j@H1tm<|Davt*SRke_dYwh^ueyw0R9g(* z`3Ap^z9iB`^ zeycoJu8qp4jCw#@W;gx0_=LU{`l`D78b?<8jHEA4vGiBRcoQDILR=`?waVhfbV5SV zG(zZGnCV*Sy1YWQ7hdwlWzUiFc|jScde{6hN-9ZJ0# zchQ06ucUX?pN4%s`%(bx?|PC%*u*MJS*wv5k*P5ob^-)9%e@V1j-y;k^8w#H`Pv63;%_3LG7#}r+&g*pi z?Uz0Qa{JSJfA8ITwpQxT0P118T{eF%xc(Ee)jm5RpMaPn?KXcF7|VL3QY_dd(^u&z(&!{8Vl= z1u^%+j^Ti6z5|8ebHQ@qr-*rkK6chLUuxNu{c0#}hd+#I3rb`?3_19v;%G~I&8h%- zKFK5@#r8!HtpnwG?5fdQ01f>%&?dBxbEr7aw{zv)x>t26bEJR?~T01s-J@-sf`npf#5Fw1_Tm!2-lD`ZuR*yA;_Spb2~q?&H;c zy8iG^>-IxcOEGU!Wj}sJ9AkzfZHyO>AC>uzH;>aw4mM$I0mv7+9|ZNY;XrY;H0hlHR>Vik!FX^NI;JoP)mQ-GWUfO)?3U({}|62Ok*Y)sye05{J2hjIo;tm z|2lnpv`R1gmpV3WzT@7EnVnDz*uax@vi%LuX^7xiWM*5AVX8o#9qoU*J%UERcH5#} zJ1-#1DgenRMAWcbA2HdoQ^8NeE}pwI-vVT+YPpk^yy8mGEdw<8h-|J0e(~%k$j=MCK(X>M^FQSt{p;wsn@QODar^vI*!15n-cL8ErIJbY)9FLc zApR=H{r0E-lG6NMxuRF!bH*(kcUOptD)kHNH1`T?!bV)z*eZzq1Y^=UEmb&3#z@YY zTkS4sg+x`}6%nvAvkeVNO8!sr>qaE zi31`v*QR~EY2k8e=iZ?ga7i&j*-F33znt%68bB4dv4&W8A>!7lNxwKv{1iBjV`fAm>@v9PNVW3)PbV->#g( z)Pa6J+m0P5_ACfwF}~8=9PG0WKot#8hW{h9ZiR2wH)J>(0I9~ios$gV*kz)su0yM# z5Wdc1e&GNzm*S2gPR_YrsrFnz=K`v0GiN6LbXgcUbTWbtn&oW){gsfUcSZwBL#Uq^=MGsuL7@KqD;^#cyR4#)ik@4eD-Kkh2wn6u&C z%+CzkhUd_`CA7<7fi}IN=3&BJx|6q|+iq_SZQ6$aBfOvHRYP0%sMgL4P)W@bk}VmJ z32oaqKn%KKOv2A&eA-Z`T5OuCPw-%@NuRb(&y)E%(D3h!rv_M4%09qzv(lkNt1O#L z=sSi+fv(OPj0n*}?oTlCw#R1NvgcyT#X{>n6!j<*Euu$#&6S+V_(u1j$ZMKO>{GsL+Nj2xW-ML=a$FNW@k47m)hH8X)1 zFVmL#rF=uzUC~hcQOuu8_0FA z-zRl0G{Ukw$=upiOG5N!pJkMMh^q>lSfMXK2^pYb#9I`FY?BL zTM_q;j?@0@FVeXjWMD7N{U+Mtv|BGPtO6~zv5A9Mw@n>DPTfYuU6(v;3@D&)x`1vh zs^i1`w0C;sXFl&gT*g%>Rf^kgW7828qK=krMKb?}?>7I>gQ^XZVdqF2UUXPaXK9r` zGgNdzZ|WR>`-QK}-~Ei^&RA2KX!^aO4gy?RleWCbOn>o>b?S$%*o1U6BgQYb=cENu zAkJrQ>O3D*N5UI@sn0>JFn$bNoOSu7ka@%r*Et)=?e~g9Jd*i`#0JVqn@<9K(6`Z< zcn$%N9e93+L4Ewq-YJJ^o|Acws$7yWX9Lo4ncFVyMZRz8tjst!~ z&l;dj3AVI7YneIvd{8B18I>&Sg`vbNnhfX{I_5kVm+}o=aClrP+U=8z4OFyhm&dHL za(-@WMODE@F2K$J-c5~SCxPt-QYB|cv3`{2Xv-G6fO(FLxFsBF);l(uHbqrEP6Vl( zlLeI?4OsP3iE+s`N-_Q5v>$5SLY6j=5T^Z!9CtazIPUk;MLMzLK1f&B_j0mt?cf7d zm#NJ~ZqBUAnmB7PeVdcie^~a?#~U2?_i2seZt#eYd6?USv&mI8DiLy(i|ycoxYpY5 zX4CYg^yhK5xF3L9PUYN7?^s8bMRf(map$UB`6hiA7;ih*w5`0HMnH&-AJdVMLFJ@) zgbx4VPZIkNqCq;%GGIgLRZc>?zSm@u;Y>U#eeI5i&}-Bz>XSC9Gm0(+Nau3@Mm^6f zwK?)PwYHj_!PyNlHV(dRXmi`{*RF0|kXAKYY|@PPiWm9fU2}^TZu8%6Po{BD7Y5Ir z&|zD*t6K3}u%T&JcCO3n{72+gP=?3Oxgyw|U;4>WV?)QB&vp!bcGR!3urDmUCTMbL z3*|ZH^$1qbC~BWwdB_dt8w=%=oz9DSXj;*+l#aD0gBEe<$M|R6;m)MFeB_zd55M3} z>kxI31@eoenRqXj3lAOD<8AUduj>`h`mK9Qjq;_O`^9`cpK3kwTjfP_E19?QJFca| zr4+r?I(;Gj7b`85Y02l|R#%d6wHlp7{PB8T2C3qWh8K?pt#b=%ue zmW!&Ks6}OYEvWg#;NC!{_hPF2%wwl$wX4x-mzV;OK&OLL^jQ$M+LPnampg#$F8z-F z3)r2{WDLjsApP-L8x=Y3TygIY!U03IaNMOOEQGN^5tfa34h*PM=}=@8h|`wNp9#H8bOQz$g1*gJSSs86Nnct_8IPv(|G?NjSf%KQQr4XmQyti z2esY^|3YBgTfVg0#gBgJ_GQlF?e+WT$KHJ1UtHNq=0t;S(gm@IlPqkHDu8#F|1So~ z6)&7LUQCDcKE1k0t7(2~NY=~k(f{!`mE(T*U|Z0K`+Ixo@Ni$;dTFkWD4zl1`ArTm ze6oc49Gtjil@}RKr*nTg5b+$8c;O+EEN+)Ao(1$rEJW5fZ_u9vx2ue{UkK(QS(d#^ zceRZ+W!*wpN21mEHCmWKAP4ndYQhSvvw0EbOh9Qnm6SafuyL`|7QjEo5jG0miWhq{ z^8KUy2nw*q#^_PVnvCO~*S%j1MW3pTabl&*6Pm174b;!khF6K_u;By?LS@w4sk61d zG)x61u4=fw*tx`8r5#{CinrPaOP^Gvj<9vYBLlZ+Hr!}Sr~EPCIOIc3uF@QTDu@#l z+#R+pw+3i%b}c`*)6cZCe)?F}FbvaN0+baj&)ZUh9r^fJFtN*KTN$ zS~elkUYgo*e@HiS+_~Z&#o`4!$t>+*7~zQ1RzjtmU#_^HE#~Q1eZWRL-wWsdi5G>& ze1JEIt~l;|!<|pJ?gHp{t|w2}H!E+N80$dJBT#;veCVeuWpLGSs z7GK&VKK@e?S0%^&k$CI4Bz>pLnQa;;%;UsFOXVErWHoWPha(mF{`_4Ao<;V&FbLCnW=62J`lz&Wiyvq7(SFIqe9%k}bFdhjVYUvVGy zdl%C8qc~s6@xNNH23O)Q$DOP6k2~($x5~>bpK{zqyDx@z-21(uob%t{i(~#+>$RS-sZn41LR2{_>yvj5{xziI*L*8Pb7W6FD4r(PKl4`m~%vQMZ6R z+7x*~VU`V1m--Q)0(_or9{}2lKC>sVQz++gxHlGw+BsjQ!C*g~9L3u&{2lj}ZodYQ zC|Z-no_u)ql9W)(SPc>5;Dj&F6e!VDkoP9Cg0;&u0gDY1DK! zPnVK0<4yy2NgOC*5D_c!&jsn|dctSg$NltcZCU!r8}eH3%o{{6mlMr2mE6sEsq23( zWLdy3vfnmX*Jd}7f#ztwdF+#4wc}H;W$(<_axylKyCCdR*7V5h0%hi?vFAsFxC-$Z zI&FdV*yvDTmqTlnp3rRzGS6^Ab3KKncEeqAD90A1&a(j>Gb1*Iq$7;H0_M*erVu;Z z+2VN7X`{y!CrtkOYw5zBQ%li zMT--QBLNrFmHurEvJH>*gWIlfsAI_fWRfOIt$Oj<(*CR8rLT@x>Gj|`>8PJ(oDf!d zd}}_-vYJ^(G4t3|TMkB(bUZmsdxNo@_IbLR-lW@koa7H>;S^&j`XMU_5B=dB?TN>D zF!b%mQ|-s($XFJ7Od0R0Qa-!O8~<^le5JL}bPnU#Fpf4dX(Np{j1kHw3sk1HLZ=D|sHFjao_<@>7@jObDU>TI(njLb@ z6J^GF%+-9&2~p11IOTHO#b;z^KKKLXBtEln?!$5Cio1|oQgGb0@ss1u75C*rI2Flk zJQ&<-zR7X#--^ez*7M8RawX?|eKAbEi@{Kid#`_~iF>tJ3)6!g_xb!6I_|>$+sbht z%W+>+j=PjOSoPK?Qu|aKxHVo5d+%I)&eXKi*Tf}%Tl%&w3w)wIPr&0m+pyKbPQ8-aqI*O)CZaJr?ti`=%W?nDa@=pV8RI!H zoXY%iI&WS!2O@(7ZtGqz;z3P%TdQtfG^fjNx9$NOTHAvEZuOl2QML*j2~`^CKt9~p zw9|UIe3%L!-2TzwSvo!0gEAcVr_}jukTBU7r9=O$eD0TetkMT;UMFYAcGRbrH);OB zi`}-JgEoj4N8*at26EocvR?vPYRi}@_aGWV{>E{CZO8pqj{5?~U46mk=v-|(Jw5T& ziu?Piue!6r8)@Utl{8)qwI`=N9QQ@KxVn+!9&*^YhyB>5{Queevph+b<-8L#_i&Ff zhjVaoFF>%mem#&+{m2dUCa|C0Pi=ym;9GZ-#VV2@K_JJ-n8W+~f1;wMHuw}7dCmop z5+SatqB7}VYAR;t<^?E1cIE&`Ha0Wz*Tr^Rw!nC-UIdzl^o=K=?V)qDt4cqV*7;KG z4t>Zp{f4(>_d;1W(WOl2jhdH&ea+3t7({n4Wd}7!f?C`~CekPiO4)pEn|&ORR?Z6E zK-0g}!3VMM`S>Y5(AH-KPVp5F>7CKF7g8_B^$bLR=D0Tc?c1UDntrkjW7f;&+%Sba z{oB;P2-JVJnf+~GostRZ_Z?u_;5-peXfdCA@Lj`Wp@?wDor|g3bafB+@sn`l_UsJY z?PT=P+(lB@E#kHb*~rR&e)>~|tV}gS+nHCT$JP+EmaW2wM)6KAf8>t)hkxt?_ZEtM zbB6;EhM@L)nQ!W>hxVEV#+nxA3|yAajH@=_?OomgIDu@_ZismuGCrP#NcvY-m=FG{ z76j^bzGX~>K1xJ$U?5&*t=DqM@(p?f?xJz$0Dn1_(e)Bg!_iLgYY)rI=}!Oje|O;i zhvgUFw2%|_rTh<|mX+bDj5lW&-5)OBX@79h-LjXu{?vWEyOyi@+=HNG!g_IDz7T8^ z`2TY8rn{1!ho{Hx)2#ykJKkCI+&w(%yjLz%o#{MyseKCPKr}o&JeZ$6fzyTba5wap zU-`MeSJ3pJE?aaL%hT>u?NkpdhK?K~{m2vT=u%pp5S*195m4 z-!Uk?UN0FpbF?r=D_wwi=?kVz$u>~d_5^I&y_Pzs9ewk3Ao_g@RfKBi=X7k>yA5`@ zA{hBHc8&S3d0{1q1$MQu>Y1=ag=Li`aOWj<9Djt8{@Rb~e1VD^R$_z1VapL3za%A~ zT7LxLzylYKw03aeiQwHgSzN>T$Nab>aDRN_QE@JEZ9o_VI;s~>N;LfxyKgpk>(%o9 zbiKOKoV|ANezN=`u1|N551+*JQR~7-$$waGHlLJt;QsXZ^!4uf;kdwE42%D5Yv8_6 z;C?>{+?9W)7C3NM|M)xZQu2!$5Rb}t&+oeD_>Q~!;8M+xz8!|1tvi|E|E@FQzN^CE({%G}P8o#%}mx`v|^x`6Iuihq)36<*p?fZ!S%d9pW+7ROdzbEa$-FMrlYYiR% z@M~^bDrLvxfUnR@Z}h`|u)UGa5oBM+9AP{O)bhA^Ayj``+iHvE26ns-DdkCpd~vB| ziU=G0qaj6T25W?}aRC6#wnW~)4X!pmah`&wwl$PESoK<&^d79yW1?DrIaKY^xxg16 z-G-pG;J%GaAix@GwyX=CGbSrgMd1F)f%}JH;I72#yf#y$jjXcNQ2GrAd{Mg&>!;!#KsdG`5qRXQB1!4>wnYzjdtJ;-2HO8m`@=d zJ)S^5wQ|S(VtwBIdillyICtDXUVrI6-7E0c9I7pJ(rO7H*tyg>{ghH{VgG{d@%s;O7X>_}zT`mnz-^Ltu@KbJ5>kT==g2je_k#ue9I6htrd_@A`kf`{oM(tgbwHaJr7W zuj-lZWTX9IccSA_K5V1|jq0rEu96Ct&*FF3R^}jaTgfu#vM-VFg%0(nFVqN=ZhevD zG#G%#So9q0WJz9=qsoxSPmWDrmGmL>tqBOOAuXZmoUh&wh_g;{%zBPXQKM@zpA#TU z*0qIY+*c`z`uLsqV5m=KFt(Ugk$Lx|;}s5_on41QMl#kQzM2?;`}uP1jB31 zR>uQ@J3ojfdl9%Ju7g{n{iIKs=Lew|ck7dr`?K}(M)v)vyyoN=9RZ&n9-lsmk)WNs z?jNM;(_-^H3EVF)7q^hU3YYa%9%D+Wl57ULE z6`?NZtp}~$DQ#d;%2))9C2;>QUldIJ-Ty~r1%(RS{ZbnRN{^i2bdre0iYw>6&FGhz zaZ0mhYc2P(bsn|V1IUWLFDmp^0a@0Z$@xgaq2em%m6j6%n{|TV69w)Z3QsygJ@DeW z2i_JO3)RW`v^#tAYxn+51n%dr6}aON&UtYT610AEEh7I~EWEt&DBUk_yVcogclY(W zd-(b-M7UyF70dv~H{%<(kganH7*^tw1nCZadw_nAm(wj20O>@Y0Z;?9=khP#YkIA^ zyAPkbhnw4SQcxwxsX_gK*LY&r+y=(8FxkaY#$TlauicNsIT@lsBWrM`kyL-#mQQ5p zg{awJ|CEX}uwxLveJI73g8GHI>B$I84FwcmGFykMwGXXU0Lr(;%G(MFs$Qi{6j);#4)vdXoPnGt=AoYx5XZKk zF5)Q>?&e0|cT^h%*zoC8?F_FHR2mS_i!VdvImdRxSXbj>tFPsePBv8;Sob=zU-{@^ zOBeP~_*0BN_eh|hvidh4k&Zc|wibL5$WR3BWa9V?-BHar(RbXDXAJMZ-MVkxpMb?^ zKjlJe05$MtO~`4*e3A_XHnt#rZqtCzpO!a$s@iRbAzY15Lz6}BPE(FM?q3wRKP%X3 zec#w`3AjyhZUdt~X}#I(pc4O6nI|SIIP~Z){i|%ZN4((^Oj`F11jqKma z5AL-8Nqd+-Ud0bw|HHSB!q43uH)Es#fB7wM!I z;aTgg$8Mnjkf$qTM}0w=Uv1!`0{Zcj7bx-u^YH~h>gW@HrNQ$ic+i!{0|`$a&~eP5 zpof#>3Rlq0Oz(mvTR1AfRWF59V4@=3Cgxw0@1tfgRGLkoQXK^&+aftxvkXbA9{HL<@WKh+;Kk{ z+;LZ`RpI$b!T00yqPtr!Pwr3GiyPU!mIepz;`?;}{P;=i3fxy8S0@VGHw5n7aeuCX z`)YOiZLzrB8@SV+{lL#ZpK0<&$q)}}g*e@k*C}W!dDNF7#i~X}#fB;;hV8JkaJ247dgFZ0JhwABNXp{0f;ClHnwsL_j zZH(@8>rHIxIPjYCR)o(!4HQLPMb(=RBoDvlsupWso#szGd?#(Gla%j}nFh9Mkt=9D z+(`pl-lpxvX7>FQlNX(-BW;v&`d#bO7k$uuOju=Eo1hRduFiETd2{98WT)a@!7!*Z zm`@x$#>Xa*M}l;$OE9q4{k@2vZ67)pPJ)KW(~oEGuDmgQxY5b+T0uKH?=!+Ko0*{Y_#G!4P5_&Q}LU@AJ;I^y3f*88Y$GEaa75YHO zff#@<+L-g*-tseErY4{3HFsFEwf4B&)|WANVFsY`UBt_?b@%4tQ~_ALsP01R?VC3j zN_DP~-E##+SC^;VrFaNp&^PYyTCRv~rJi$%lnYitA&Hkk=mnK`yST7qBp=7m32$;1 zjbGtd=^Rb!|Frjz>oW*c$5#~xZ}Uo?gwV@X~9nXk}6@!CJx^pkm@kHNB@ z1Lnv6O8)ZB9QF>y$MV-hl#-UF^86p`hGaz)$$G4pyTGOGv991#Oi8CM_lRvb!Oc}a za_3PP{ZSCUg1HB&btBYA_o!p)+x=blSwZes1-t|_)Da9PU)3YiN{mwPlo!xl-`#Z| zzg>49r6a%79(GHA!6<2hQl2v7F?a5^$9LJE{Sw8`H@Dpf?GL_4*Bybb+K6uMjPfEe z{7n9k=Ui*G#TUNQ%skqwI;k)xU-LF^R+wRTzWp}n#P_OyRO8`$bM=nlvoL!t5&z0v1gM7-M zpSMHgMUp&i@Rx7jc7J^TzWepf8$ZS1`7Zx2W#gUdf4R6azQ4Ha-d|pJ?}TqJ&Xt~b zzq}Fc>e6=c#q&kFNzvgKuvuSkmwEzPzv!*p!LIX+e)BPy^DwaW`yg!QON(Q|tn3J* zJ=&u&-|^YLM%mwc*P%P`Rc72q`dx%P#`GV437I|`X@82V#Z(=u0sADRjmj zKmtphqe!qVVNIRrKWmFmK?J~n|UYTGIq z7Wp31cEj^R=tp=TG<*)WIn@jFal$6&@}fJ@CXh$Go^+z)X#zIY?kA6(C9Q=!?x$Dp zySL@#bQked-S-14Q(cJW`^KAW`LosuQ8fV?(VHqP-gIEH4Rw(VFbemdFV^Dg~K-ljvcb$(_l@EFs7WepiAQc)*y zZ5Stzz7+Od>j3Ln^kr-Sh7fWNVlzO;p7iG%Q%zG~jS*k5oq%ND1P)AxR&zp?Y_JD{K0RPul#C5UZ8cLDRMRiUuzI7 zj2C*wUDOun6Tb+~zHK_R->Comy;fm9mRte-(&0PZRafIb*<&L|~`x!8g`*RAt5nt~Rv=Vi0_;Xmd70lf04IOimGYu3iZ88pgZ~g7*xgUY2 zO<(VBx-a)PzPOMo&8H{{o^jDW6zy=9=Ydkcv{z}D+oXD{&exKdvp567X&`s ze(C=4?yDb*4v)~tmk>_6Hzya}`_&r<@9NHObNbXNYdzO@x7}Cya6_Dw?#7Z*GU_`nDKkB^U==R1wb{poUXBcs<+bFF&6 zRbF$|-*G=#EkA0We$d+IpM%q=eZGCt#OoF}GIP)!_bq|@)$-S0Kb?Fif%|%Wa<J3AlyXa*hwXhdFFWMlCJQw3Tilqlt@$K&{XIT(A07$Zm)-S$|Bv0~j=)_( zQLf zFWwd(0r=BBzs1h?*q^+RTYL6TOaM_fK7kXszblW*zfRyTJ1ojOz?&QS!9|91Ue+dG z@4kH1IK`%;ZS6jYamo|Gp_0gy^a#KN{&7<9WAZ7UX4wGfWOQ<-O|mw@&kqk83r_Z8 zaR0XgSw7B(0WcSkC%eg zj&x`HQ}-6rZFdgzm>#lqov@EWv6upVt9~7C%x#_gYhCg-M*G|pd`3o=c~<*&2p($9 zL2K2A*FXYyXx^nY7OcVw$!vkLQO*q|d8-iJ{+p_#(JSBDV2L1X0JYfA$2`Y?WOGag zek3%0nuD^}sFdNO$qRhm=HDG!+7gV;8tB`C=1IO6Ky8kY||Kt9#yVaaus?3EDzb7Q2m;))7a$?K7UYWV@+CUF7_$< zYT#aVmJc5fL2Ik9MZ2-fG3~%z3_j14yTb58k0-T?zt)jy56oNl8*Nd$7pn-|FaGrZ zP~g6Zz?~P?sUE&6uC*Co=AiN%c`m49C2%f_*e+>>hPMUUlMp${R6YD_AE!Rz<#o)P z{0T4iJ%*wez66HUtzLWn!@zc%I zeGMPr=cQ$DPA_1X>>c`yr-6d^~Wm~bsm z6r5=;ywhIk&6)PAn(O!4&wl=P(|x_;Yk14pe>BVhk_d*=&yw3~k6l$3`dUdF`)Jdh8fQ)M zDAmFe0;PTkJ%t>{MwE5~Ux^@ik0%E(fmtkLGLb``z+J;4k$4Kj7YeB~#7OYV2fQ4S z_MWQFkIOU9RL2_31rAV{Q!qD4qc(DUP?g8Mt!xL=w*(kpb4Ykp| zSvsjAf9}+znPm?q?*SZjP+9*8$M=9|No zH;_r3*wSB)^zBUl?)t;09JlswtYZ(>cI5b5uTJM0}PtyqA})TtuK%L49ler%B(If9sKh202}nDn;X9|o<~|~o9{;O{is%6$oI7E zA2d>7+ix#M{GXxgBT%c7KIN~1_BU_3XYTlX;W7TWDlB&@>wc8(oFn81b-Pf!GL*g@ zgv=M56GRXMz0qf$NMlT!ez2{EkFx7q9Pu22v>VJaI<0$DZ=M5CbBYaT-E;~}bK3Cj z!sKoF`Lj>*Z=k36`Px|fcSKK{{0-<0wttk}r|62*$4UN`zVelPu=LxojXmnqnX1!z zRc?89pc7L3U@fvd^#0H5O?kA|{&>TfP{vX`(YBI;TmAsg0rShA))PN6%&}@e5@Rh% zA9GC^tSi>lVl%h0FG15woj$7k1hZaPcxQorV3TOn){5YY&2%Dn=L*I}jy^ADZ^eQZ z0U0QQ>Crdo$DEIcp)YI^v?og=f0oi``5ve;G%-MbQl2-kXha;a zJgC39b9yhI{MfVnHos*;PNQSA46SwZWZQFcI5&-wjlAg0VV@s$yzuz2@_F8mzLg&T zp%HB6B`8~59Pscd~jD!d&3eZMsH5xURFi?3o+e+UlxeN<

7NJ58sTuy&k^&9`q1VP2Yt#1nd4vzztt3xQp+xYi`7RIt z1F?x5FXa39?OXSOJMA~OaTi~5;NZO|N(n0cQ)cQDf_yH<{iF6+|M>a3`>LRwV?1~R z)qN~&MOXNdb>yd5_~3WhGgbVFMYf7$zSld&!e-2|fIif@55th!BF|XsjP$?zne`!f z;z*7^p15ER8PySfDV@+4%EZkWaZ!+Uh>Jq}8bPj2)@vQ23DH3vItc0s{^NohzECG# zE*hvl^?5$XV`%&e0vGAHaLVlLH1+Pd*0}@z-z5cfZi*Jp-Emjl`df3yUHx_SxY%5- zHp_QfMBi(%e=p%*7MsPdYWOeG_P*OJe8+vWh~IIS?n^Cv{T=rOzvIqW^^eNyAdgX) z0ne{8NMrE$Rmj2&uSxnq8A7bY%-*8Cg`v(vAO)tnfS6>?m9*u9mgU}XFOx8@yN6Pb z+=z9c%XMi}sq4s(gpLFqO8)HiD77zhda+xwR5KQ4=U@x|Vf#}@O9ME7Np(0`PN^2J ze|$Xe{>zuV<9@Blb>chj{3iE3cieRlaq`evp>YEriXK$CA{PkgDiz=2QxH}80k>(< z7XU(;-vLEWEU2N2qX9At*>b&(7tft?2x(E!(fug&BeBxY$+fr;LIa>eC!!NxPWQfh zd&S|{b!R7>B3=qO2eOEVVT!oUA;scknh2-oXWiM`OIPq)?R@{%cOthR?puJ9j(pa_ z_}x(Ycq>q^2E`k?bu#7dkNVn><0)U*Ec4_8eB5p4rGUeED{whZ^t2)RtJt?6dwi*Y ztkC*W&lnEX)k5k68u@WMT1fMiy(!S9I!0pj9N7Wb*=6fsXmzANBfZ7N3Z>df>xcQq z%mrGNY%*9!LV-zu=YWvl!1Wbc;T~o!%Q?aSz@jw3rmNs`$uR4ws*$>~a zU-+Hq!((KM`2xxs=Zf&Zkd-a8A{3uWTRmiIehgWWw&p-}wX1gUsVe(7d@Q=t#KZ>? ztWF=!dZmwYNm2`X-L;y(^tiu%KvBdvzcer^9s{{vTScQ68`SX?9X~4n&_*Y>9EBW$UEJ%?0sU=mb6$(8M7JP6P!`Iiiw zODGaa>NDNSb7j>%@-o`zXy3(O{$IPl(GL6%t8c2~0awY}r}RtmWA#8w0}9>q<3Nb^ z%t29>Zp1J(fE>r)ep{78ZL-!zq{^!z#v_jSIlWML_s{8aBFD?^!d=AgKGl!g#!2cK5&=J70WJ!87$?mkiL>4`m0s%to0^()a1!550{>7qr^PBS?N%2M;xIUUrO16B1Qr&NLAhYZ~R8{cu~C%T4#J6E|lfjV$+rd_zA2?-Ya_K9q|fE|@h z3X`#Tz%N2PdX&sS=t-DuR)}`m=68w#U4GOOz*@t1*iSCxyG|@m+GP2+!qr9_mG7x; zsFqSuUYyMDxbyN7;Oxb3m6x0wENr2)0n2OqrIU^N{p8J+7r^^ZpY1;#5Pd5oC3_%5 z;Qms-8$icCJ@U(s!LQg9=|reaR;>WER!86-kIFyYKh6j4Zs(}463W;FWPV$RWF5Ll zQ?7;F4N<>M&w=2v*`Z@wANm~D(B1YuzU;I0J&y24;Fu&{9KED~p;SdI?T!2fAp!d#rWM$4CLMZT`AK3zGNPk*D57LFl%| zN)xnhv>+b)QtQcYW8ML+NVVHIFiVq{Zd*f3nDZgos8aoKeFj1wfok8sDl>M1Xy=UH zBfW2SlxpHT;5WiYliFP124qn$*H^RTM7#?S`2O4ZU;eM%zj`wY+*{|zkX18gfmwgHz;@oo z{tkN~-&Sn%TlBW7hz#Yo$p*j*hx=XsmP$STNIeAji|+E|Ou_qAcfKTOe(wJ9;dA%t z;ks~)z^2oFraeW}2Gd9t`(Ja^Y(`y!@K z()a0P(S4MXkD`4LetOz0K1=K8#o$r-ErI*rDsY#1Y#$!DpDJ*_CvZQx+?+h~lW*_U zTm|l%a>sq6z&(D)T`O38$9=I-;7*`V;LaWQ&1~QfsD3N#sUCrwBc!VnR7QtMmAT9n)f(l47(-o<_P8h;zL^EUSA%yu^QyZe7$&u*El8_Txk za^M^Qnx}j!z`E}P_rLr9X?Jw1llNTUUKA_MjS(vR9Xf5ASZLs3z44nWrGuB?aQOO7 zovM4}@hfB$xN%p5m+E}`cITJ=wE7LTSv4a_yW9m?bbokr*8S=2+8iHmp1TiEIw5PJ zUT9OUqu0M7o8rBG7iw>A1KxzYx_Z~Wy@XDC24j6&+)t|e^>Wqy zNl2f4)#3gRchB9|FWYY(P0Mwwu8L^M=49@xYy^t!yWDoQ?kZl`&48ZN% z;#-p4H5w=P3X7TaWRMv0!8Z$2le0j7v7TK0CHFQq-HpygUNhX52x_rO;LZ!|?yuv{ zS&pB<<5$Maeij(}pe1`pWRu);zt{J-#;(9FW(-z z>l(Pbs>ln>A6ZkBr`;x+UgooJtWYjsA?RR`g4QxMkUsVf2#371gDtoFas)G^c|fg@ z{ebqua=%EBe@@XQ!*#9qM0?O@f6&5GvnuKU2_tx?qpC z>8_u?bvMuDy*4B0eO6stZSpQ>65x?w>OqIH%ro{`j3G4+*g-QD-Z2!Od1#!=tXNay zcSBzM+_t_L8XvYo$d21VFVG$NmVDEc1Tr!_X~ZMzI@TZxd~rkWPQCZe$k}> zx%jGz3iOBfdzOu5mDE=~S=Nc&I~{<}#Qi03@9yQ#%}Rm0^k1v~i+DeY{gX_6)Kc+L z%pVj&e9{j8v#fo7T5i5B9v*JG)9%}9wYru5hxNzx<9}`f_k&+fr#c1Ni_`lI+`IMF zV)Lv(oWOngezDwe7W!qgS^g>=+<8|pzj&txypvMDoKE$Z>fRlJd+B4qog3K}f-)Sm zIX(kA`m2$a>-*=}*5*3i_O@t^b-QCD+4HW=25+@P>w>$4QwKjc8DMTbaW?2k~bPn+&Petzu! z{_}13tj!&F)Vx$nU)u-%gjVeM)A^{+gus2R!2Rk%hoInG>*?H>jiGoSfL`xLra-^^ zdb#fYZ+~&o{d%QFSLHvrhl}U#Ws%HR{>PB z;jCRS@=bl?m*>f^>7$DRFXRf``KcBK?vHKY-nP@gF*&Bq0OL`|#12Mw07VbuP&ab4 zW6Ym*q{2B>6;zoUN=|kDbo5-1Oj=u$L9MV5Wf;F~!oyR|=N;vP@ zwc6+V!JI{B1nxqQchH8wOcq`1PaK~q&_L?)XMv0})jY#nEBuw3XW(pQHMuw-72t0Zay^i}ULi#jxeR7QTr7@#axRb{8wj4&He}vho zK9`pA7+Ucen^TI^=zPoL(3gLFZ=Y^I61el#Asd6kdA@#ga#{j+$<%QpWxRae9{Q9n z=7!rVW)jmG6`{CT>ih{odYNTa#!1O%Kd4*-cMDOkd5~YFmD4EZR%a!^H9T2!kuUyLgkyu z-0f~yDh%v3D#tnlW)vips_Yk3B{%6{Tt%sC#iaei@;;agpNc^j4XJZZH*7|ZS@jpk zHhd{QBeJK`^5Ytg4y58I+LRLyeZXFmKpuA^aObN;aV+I~2cCFAa^YpKk0JtmfHF7n zRAn8=6+OiTMZ72RW_i(ErC30*_~udJ^qqXUKV5b=%hmE)UR=xE7p)7QWaE>1?`tD%XCa%W+`p;wR&5=7TxiQvSl3-iYq3GqM4q2)zb-37gu45 z9H}Ruoei`{1uAVG=6u%w42UjU^ZY{UCiP*uwv)Ux8OQxzuRyvxBq)zdc{ zto>B@=VcO8ZdkTW`aSzT>qQ@8PpiHPfqv|CFzbVZH&OqMf1$tTwYfIG765|sQyx)Y zkzYC}PxQPI1~1&axPdWE~)KC$`#XAlyTkTZqAa&w?do4wy#mp^GBa&zXRv^eZdQP z!X|h1FHhn{FE~k(x(3LCo~RWq^ky1)pnowCbuA{}5h%lb-;i&x)Z+^q+Nq7kHYa~! z=8Xeh`mCh;Fz3CIxdtjl5mu_qWJbq>N1RD!&VDpS1Bm?X(EbSk@?;V74QD zpghapAa>H<*FyPPLHb21b@-`NnCnlSm<7lt4#4sarti#4RnKAQh@dD+qz#lgKfpW| z5=G+}>HUEQ6#t#Wp8mW>;9IN}ktfwi&}OGXx51*(22c*qW6@FPRU_v*kbKs^BBuT^ zT`ji#g7rK>KN;2M1qa7#^}EH=Kh`C^xprgMnC0)q&{vj>;z#ON>b6Bb{$gAMB;cSu zE*Qof5SBRtANqK53v}L3ih)62D|5y=@`e*Rj1|H+o?3W`5{nAMZ>UQqkrItriY z#*wW42iQVyJM71Ji&B{TRVhJhhN|naDi~CO|xK&`+_4v>;?KlveaWiQjEbS}Bh(2eZYf zOFfA;Q?TVP<@BcVs14Od;W4&6LmGB6ADH#%C)r{{^kb zpH9j0 z<1LY-{NzTy!LuIVv)J2AzsWyt7LwPJQ&yhadu%?cprcC%8#?>8_t@(T{j|;Cer|b_ z%;qOHGw>Kl_n`#nJHx0>>TQd+0pD`VMJa9IjhZ|<>HbCzNVyg$mknsNKhqxB=+d_V zN=Nk-XJL-9MS#Qs>D*?L-cn& zBsiX+DbR4>rZtEl&Xp~An#fOW7+6=T0l~m;%Y`g#a{#yh%6e+SP$fwDO8A{1of`Ww z>K7n8)BQ+bpFtp~JPS|A`_$jzEE(R+=zdTdxr)?*YEP^Y(LX(wwixL) z`XKkjg+@wQZRZbgzSWsLO5LaOFZL3FeP1R@NAcUgAXEH-?z$p3FWcgwe1Sc0FK3?{ z+hE@&kaCO3A39s;bq2aj$+kQd8^2Q*@^jeo zR_y!PeNa*MYMynTU|spvcH>juhkboQOG}*N55(?}meA4?GnVo(QRG^%k8VS23tiL= z|0EuWo`M6Ya^#~$3ay-~VIRJ(fr1dBK}D2KQgum(!t}LoNXGoE)|R-y34%_}6dGy1#y>&6GAA zAFl7+hEKQgo&O!;BZ&STgL+sW#p_HBJ6htZx%wS4)X6-XNbT6lR~0hFQ#v)jJQ|2Zgr4gAY|2?n--Wkzx?wlo1c2rBJcsdM{Be6w&U-vNLh zsPl1i1e7l5dm>Iw0egINJ4?QWRHpiT+1b%hx-$cKcT;>gVIC&r{EM|K=sxyj+f^bt z_)o{+L%vsGTaw7k6fCo4jca`QpD7#|-4W< z`bT;w?h)Is7bQX``Y<~mz1&pAus%Vvq1Y=r0qacuBD2S*gZg4TXJ%v$(!+7c`X*lQ zp<0n@qY$^M+ie>y`BX}*Dnaxytt>R(Q-iK*L^*!>LOQ?-W8U;f33;vj#r;@=_-Qzv zhG%UNztVVAUTZ7wDtvlSU?IQat@4Y-y_S<3rPrIq@_Mm({vsDXoh%lgr1+y&ypQ7h z@U(gUq&4*OV)6X>l}=lauchnst3PoO|Whn z%A}25K&gY9q><^{k~C9GZVW+Zlf7Ooy0>rf^R)Z&>1%h#9e3%f>JrA~-b{tTW>fy2 z@RKJOZ@MdO3V|~nc{5@?P>CJe%AkF_1U1oylkUwGcR^O&_2--J+s&PHARl}OgZZ}! z$r_#Rj^FN6z_$854oUZdO_4T~&-V{1v-v7Aw%Y{m+CV<@9rqfzx4Pj~nYVktQUDM- zh4$kmfIp3oZ9lg8wkrHBr2i)du0u5O80eo8l*~YHQgHy^;kaE)3_A%Lg zDtEMjb?C)ylpp+gehICm=yD+5_?hcZOLJf(Fs*G9yp+-5V(8xq;`b(O4qDwm2(n%K z+!ROfCXS(PYx0-`jkA(IeV$+oH!|kph}J^U+j97#uQr(H3fzIa&n0j#!726~tnyZQ z$=`jw>G(;t98c?XGy1mJWzjD$2-11vGJ;i}cDgu^z@2xm+{q4k2l6Fw=iMyaO}@Fi z@4j4@z`blzeH?qu3yAIu|Mb!KN%|%r#{*a22;9GZweN=XIiG59ITB=e+TrAsm&cw- zHS?7Dj0pnp@Q3%w07cYwJiZ7Q!Pm=V<&W{=?2ksjM?oSHb*9zRV zW`EVbeHys`X9e!NUryHt?pF%jKh?nftpfL(K5#!dxm-RgIA1Q_%P?nxuQ6)@M5=g6dk9L_ z<1)~kvc#dzVzIgztL;CO7> zQH^H*_5_hcIr`Y zv*VmljfdZUT=4vDci9B)Qz$e$L<+{DWgKtT(?o%IL5>zs`OjmD588P0!ZzL&FblPx z=O7&bMusZDGxF)R0M$9x<93(1z?`Ue+y{aC96%>NobSZE~z*5l()dnHt2}eoEltI zn?NdWbdaTAnUCmb^pAt~U9j^UDIIPe`K@eGvD2pe>o9*_1g-8}?MWCPyN5#RR+_=P z;n22Oe&}BY?iYVi?zn4>=SiJ5aK{cWQRTfLcieH8|32qTAZU0)&hKJT5Y8C;F0*R1 zX|t@q;-$429)839;W3WUv(ptDP=C$q_V&R+?qH5E&bA6qf}=d7dAZ(_t0$4ZE}O@R6c~ggv;$^c< zzZb0`E{JwX9$%yf{tVoyBaa;N_~E2&S?GMeI9b{FtTi#@;XqYKu9%AEJ;;x%*>bq;s%44Ie8ONQI+Pm+4n zdT}T6y~1i1@N3mxtB1cVP8OfE1b>oN1@4=VPfvZ|-aS5lUh-D?61ZzUzJ2?4@$m8E z@aN!O9=NYJS0~RWm(NQD?#~gps|mksmYW*5s~32q{5x5ABLf%ezDsq$nM|zJh+*Jf zx&febdWevIC)9dnXb!opGHpfXix6N^=;?Jd^@jj*{7OIRoIjaw)h5kizRO{Dvjg#pj@Cm#G z?*HxUqPzJY|9kiR7(YYCqw>Dv{v|d;UQ8O`z)t6!xPMw-e0Icel%2%pAQn$Dmv0INb)w(ePpN;NCG1J7S1L9l5x8H}z}<?Qv}7L7Tk%;sJLevpk0MpA8H_8Be|x-4$#o|IN2motdPI4Ul=ZFz)J~ zV_~AJDbJ2?p_M*6*q3CpP8HlwrT^(S#thnbw2k#K0{3^yKXu~W|u8`6f(%=gO zy;CWN&b;G(_f3I2kIFY=6nxUz9;@gC(CcE9EmcI5#Tv@ERQvJ`FNbYcN!Yf@TkJ+@ z)F?PFZDTLv4L67&@f8G7n<+A&AebcRUemXlnm8DI0dw`f2sl=^AFB2KQme<*#Y^!VFk6>(P$m{EfK2A_c$}tBWAF|9v zINw|n@R+=cv9w_dveVQ{As}7BrZ5>cI!-7+dPcpD@h91Nl<(T~ZtgYkH0ig#!2I4-ZcY+@BP6>b4IPL0@4zTiZAG zGhpJ|jCi_x2uu#Z@;S5_K{;s**;VeJ)r}5G||^S~5eNdp#FGAjiKHQB>Ouuhw|?N3on{0B+{rXwAR7zAk}#sZhpz zj-ZQ#l5hbXrBJGRxfZBY1-9|kyg^IXXUE38qMIoggTDv?C9*f&tc90<| z`|2~tgXo|?<6qN7A-2#@&54g-pW~3cjz*abiCusj_5>el?tna$D&i9uWyjFVCeY*Y9T|eBS&3wbYBERU?+9#YzH(x_| z<_FJctLu1a@3Ze(+6UEhmy;Uish>bl0Y7Q8EvOt{E6}7s$e_MLNMK4KkGleP!V-GQ zMh=FwV@pTMj-l6OZ3A7~7599Sry;fNq{7NTI@L3)Ifmyt#fx9p-Jeex}F)hn6Z(7_Idn83ZOfxD{XQTc@e_fCQPN`ZT~Ir2 z;giP<=HFc1p-5A}N*kAtK{qq<`B&=-W?TGMY_*tt`6ptfRiw{LzZcZUpnM4Gqd}4> z4`bJlDVQSL%02e7$urNl4f7zJs|$=d$fJfQH5Hxjwd=&gjHEvOFuGUeM@2R>bAH96 zi25&M22aBWO+ji!j)R&Ho`GG^?THh7pvpY<)5y%qHCXKru=wa>G1?n++LrBWd>7An z{-`?oLMt4bj9H{UF?D;+j`e>p9-^=HzxClbbOZF^pXXV{m_v*DvHnu_pV@la0F%G) z)PBn{f0=(F+75jXcf{uHH|08pEnV2myCI6t<2+Zl57Yh*bUVg!dk`5N+Ou`7ZsQ!! zvDoUFnQw!!m?D+l9MJC+D~@YM!J&pI&Y^L){3^L>5AqzkjW4b77{ z*3)9kcLdsx($3OuY1{rMp#fTsun2uK_50BF8Z2}QgJb2Te`%*h>CADC0zln1TfvqH zkm|5CTCOQ;!>BUzfINV$=%Y9<^t70B1<98=2utXtf6-Ntx(OEE5&GPwOq_q?eCNm0 z>v>P9H$kL>n0eGqlb5$>My>j?Z3f_$f6(QkWUlfK2TDqGUP946?<4YB8Y z38wDQza1MsMv(bK>N0(p2yI5*qdr1?40%YCKB_CIkBW2kfitrH6MdU)m*?om;P=Q* zQQCZ*Byzm)mN+gX@_G!A>!8qmEYU{EF&BC7hkuT;%uSv;@lR>0%-4%dXU=(!Mjbz= z$@;_3Fj`)D&uM(IKdic?0~_EF1_RKoNx#atdK_JM-5-VjCbARITFYwCE&ey*AOHRK zJMJeZ4;P!w>gxIA`EvQxy<03+@1LKa-s=b{FQ@B%*(^5irR&{t)4fvz-l*>`RClS~ zJd>aPj=SuwL|ZE55}{kFgScs;vawobX$VPh&-h~iwe!YRru9U(T9E2me(N|Ie2vd= zn0)Z;=k+uzxoLZW-8$y#hI)3(AH&;2@PQ+rN5x*>eA{+G>x=KWKR0|l~&Vl&cxIJy!19{=)nN`1zW$Gs3jyrcfPRe)OcinLp%=%o) zJKKZRw7;Ea9*W$+|83(a-S#8LD`iFi&s;mP!SU6~4cav$(?VtK`ReiKI(?wpB-)Wl zW3NCz4w;H4eQ8L}w<)lTHik+sm6@OPPped)KFP<)y;Yr3xlTc#Euf3ZAYlGYhzX** zeqbSNvJR#UeV2Wl`P3WouofE7(6<8hl|>nBK}$a~Z#{(upZ}p91|H*9CyD2uptafB zwtn(k?7*8n*zS(#d^R%7sy;9X>Au8 z(T?j(EKmx_8(lD|f>{PaQ&9DAo)sNMU*AU*vo7eh42UP^K~nu4@>X@Lr!YbBJgtx0 zH#!@bJImOP?yItr0E>v4pA$zv=v1vV51&YbsXDZB%(GbFym^VeYWb!K-12E4JCi+_* z*9j*+WSMzPI<6nVMCTC3K1{vrA^NZZ_Q(t@?M2TXSAhL}n!wo3`^JS409DcTaZIOb zXb#ZJyo2tW>F_oxDKkaOGbs} zp`{0Sft`gohzB6n%Dv4*0TzPY&`+c7KC}=#Q{HKt_QAZlB+gY1ZS3~9=RK@l0b6-T z%{xNn1X>#o+&53%=lit-_uGH?FACgmy>R3maKD(2qcp{u?4X;fk8{qIQ(qgnCtJ!T zIqOZwwo3&D1^K2xPyz4h)u|tSdl2F)C&_~$+g4RaCLWc4(_KhEu-1_WtNlMjJ-l-# zn+C!(fji%)Kj|K>?|)$6Ued^nAo&DtWK%u@Ja$5@Q$-KZ=b?Xp;9j8CZL7y_Uxx>j z>cz(-jKN}>Lw1?7io zwJj;9k051PP=v8r&!(=-ynrG)%v%KUO?hvuMM86_5%f6&#Vx9xZP>HAvgyNT8QZm& z>J#M~#^@W6O$~%nRe17oT8cRb4MpCdw)-*CN`Q})zGoav9755>ohRp0U-CMyg6h!W zJZOkoqxs)XZGH|4s50-Ni-JvW>Z6W?@uPnn+=P&-;E$&S@Fk853h<`x9$ZymTnAw&(Qub>ul2Rv zB?!cJ86UuNt?;@(1gY76m3r6ps@!Bn+hL~&n6*mx5Mt$1w)usa_3E@cTdZQ zttoTQuIYn30&t@TK1~D91qg6DR3&N_EEgvV+_|@-!2MCt#q(U?zEI%){6*;}34W4E zzno5dA7n{^J3j}v`TTUE!2RL10{8dt*KePmPH#2}+#eLUuN1gHFE7RWj-Z|3T}~=s zU;MgRJpZD3>^tt#?!aB+reJ>ozXJD-19#;kaDUFg9Y5#|N@`YQ{2BdS4k%NAk|PNQ zL0{Wur!cOxlE^ktyg3qjpUgSXJkHua~K&8`ZV;|&<{0a-3GBr_~pUQ40j zD}c^=*fn$mves9W4(ihoMA{H(z*x};YCD227Qg~cU$MaE9rwTc`rO_A&;PUAJo0m7 z+Gr`biol(_r*QXjsjclV9TT>*%`e>eAq}Ve|!F?wF)tPKv zC~*Hq;I0#H>?d9U8rybWWljpU4ej2Zs!n7xHV@p*Z~!JB(7~f+zIa$ljgK5~r4r_3i z*unnOMt!5>1sZ$^yT7m_J-%CpoBE?oI(aLNJ~qudC9f13dhwY%Nu)u;4sXMSFZzY{ zI-o0ZtdU-el}A70#YPiefH`O1;fGUw{HXrUdh|ipp2F>M+u+rD5)9S528wq&M&*|&%&30&-+7;uXV_myd z`s7{#8Q({Dd*SgyCkV#^6Ho#qjbw(8H#OhgJ#_asw`%WjJq!)-tDiL9p+jwCK|sI8 zD;_;pALGBr$40`273d>vBG0&%IplHyvnC7*Q;3l$P#33paC_uG{_!N1`?$2xpDLow z8dVqFmUFlTD6EsTQD_O#N)nJ65vvWxk;is*junj|JJ~2NtbzOcKXrd~sZIInzFVA% zcgf|x>q7B$H2mA!@XBtP23GUYW zj=gkw8&hQ6FVQ&xvd0}zfc1ep{(1cJm_8Q~H~^DCY`?~@R@%d?&TZ>yp<`1r%w?Vq zxW2zp8}B_PX9_b;mptmPb%pQhi&yc9+rS#Y%l$ZRxghYU<17RBrv>XHeyL7l!%rmo zd(rxL|M)Zf*%%qw-P*Zj((2o;;S@I@h#i5$aaPpIUp(1nR@S3wx2`Q}PQ&nV~N&438`3 zE6~z_dFf~mM@H_iu>*|~GNjpO=>sFnywSf%iflDml-FUrc_Mh<9=LB5xSuF+-+&*b z*>~JEqdsXKeSThUKA&v5uMZC=l6h3%ex|_v`lW&U`N{kDw`(0dr{Xz#P~g5&;Qm|! zcRBZ7^N-(c=l9!v$6a&g>Q$fr`WCEx18&nWlSv)=qHKu$%Ieu%E+BlYy6g0>KOb9uhAitFf* z|9#-T@!e`~h8ukYm4c`dwJhfDn{vXiAGL8h8K0ha7YeF@8n}-kZB@v!nAv3P0Q4c= z2ksAQgEnv4g#IvS=i6L+Do~jWI~lh?_GR{gS8o5rpaXZmobDxo`xvMzI>hHSLv!Tn z;;o;WAkZOrczC||<_(|N{MFz@GS-f-`uC&$3O?AZKqJsvtxmNexzh%XZ!WRfe(28D z=QRLi!^|dz;4T6))TS@2ZLy)Ep5{a_u(nS7Bp}#ZYlC&K%@jdS1eo+s@Y6=?w0;6f z0z`tr=pXDO_o#l2JDmKi)kAl>K9kPdZjBw$xXW^`dF`OQ_!?^rhXHLTpbA^|S^6KJ zAFP{q0X#n3cWcQ%KHRx~k-1kp=nv8p?rQ0H!ZtMei;EG~sXyAZIysfjd&{!^h0Zhi z{vdntz1Mrukf)C-4V~C_u+3w8TtLt~@`ZzPkw$#hDPHcfC9mc0<)`Ey)CbH7^xi$* z=-58BUyKEOY-*9kzXz>{a@}=ohHX>400Aog(Z^5fca|nLzW0x}+DNCL(XaFeI+-(o zgID!6^AJDKLtml);X&iY{E`ebE<)Ws+*l`l3Ez1Kl2sHV4gN0rw;Kv(<*PB zr=GL%rfz(>)x0=Wzq>u~+P3DobrO7FM>9dp$4G<9l|>bWOC7i)Ls>2&no>3FbB*9aJl5qNG%#=k#)3`pf>^Z`%^IE(-fj@mZE(H_*M~*HsASqK&};GyE=CPxUBiGvIYg?IMhTKUq^I{A-+21>FKS z$LHzdv^#x1Rp74v5iH;TvHPp5W%vF>0kfikrxP6`qUU^_Lg@C>Qc}$P3(y=AsjjR3 zw5x_J1C~gibUg60g8+BHBk&iLkLXV%S`Dd#)s29-^o3YxKl7Pj`|a6fceTE>oyU#V zBbnj&Ec#Jm0oF+xe zACggvBRd3lNYwM^Q7~g+mXGue;{m0x*L-j?uL7nvvSte5XUl<)69ujxkm-&=86_Mu zA`Te)d`oqy61MvnFq8yn?+keYw1wgEF;~o3Rxoch>LjNOqai{ZFnnlew0q~<8ahp= ze5d+*>CiP{J&ZSw;s)ULRF9x(^*$H(kn;gMc8TK+zmFl^En!imnH1wHh}MqlkB*l`{Vy>sI>!BOAqKX5?Xj`}dO z{TkK14i*!}ESEak=Qg%HiO{n@qE8M%NtS%8r!8-zjd9GAgV_kxAZ2i+r@gbXS-X6DN2Jdj6Qx9A@W_x}fx_Wtw^yNQ=&}(9naIPv?Rx^h7cC zwkh-9q}Ek*x)5kl|5Z{^7o}ld#}$DL$Gv+q>d;Anva`-d=~%zww~gTu|EJk*V{Iv{qkp8oZtHMmympx&Cgv<`Xl8-r&x51 z@9_@T?ACg1L5&KaP89Sf`g~y6w^7eg zF63qa9ezX|KwGHi;wN|6@04)9a?>xRAy1 zLI94<9EWI!#z(kXoGSP~>n_hOx-0PXqPsk$EIdE!&bXkDTr3Sj>2e$5$pgROOydU1 z#lka0^QrQDz4FDl3+d#E2G0lnw9n&s;Dv%*j3DKLHpm4X+68Z{qu{X5X;+LxLDg5= zwLHew$H?^aI(g)(6^Un1bya2%`m>QIXjRe_PT3t)E<5x8B`%+?UIX)zk9odC4904R_VwE9E=w zepH^6vh=)@s&~@-rt{Cib(dm$RF#}2g>apAHAP*(EHIi z7O&*_j{9=G>`vdTefRz0+hh0qD82F>nCpjXrBr&Jkf#W8W)c^R{E|oIbrJwpJn!P% z4zNmp*uQoh=OAlWr#c~BamW2J?zk8KUk6%USfu}>6p)4D%~qGG*jgEo9qzU}Q!s$z z&3D{&!t@>Yhqx2FAH;JIAJ(w9)MntlHx>jhS~`8_l*gCNK`^5eIP<@EIecZ#=i|>% z;!bwC<9?!fCce1ie&M>1WwR7_)bnl&?SdEeTo}@}#<~G`(8XP4d=$Ytxg&c2aI1}| zHl?ETC^P=yCw-88MH@Nc#^dJb)V5wa*@!$y556PFU1#oehR%5Oo4c646E2$yMKEoD zsB_!%&IdYWH~fgl_i4wI`jNZA+?n-7KJ3`{3*T+!ZZo{=le6yh^xXc&U1A?;zO%wz z9qz`$N1r`D-Gxr>gmc_UFXM&prrA!6A${~H8rtYXF5BZX?X&Ovi65W1ll~|ffQ?zU zow1~iT&RSG9r$TKbjylH+pvl6^eK0s;_f_lc&t6-;mxsPllq|cbF=jXV>);7ou@X>eN1@V?-9UIE~r@J6Z z7rx{jKl&f@Jk9V_AIH~+(=jAbZSlE804Ze>N_$YpUCM{sxZ^(H0jxr_FkBgYm!Mo|Uy^m+LcW zTXwfPPVdWl#)Sz#)~^1c4xTrw3$OQ_L%!-b=Bonq5-<1TqLAObugK|4LHJth6zlD^ zj_q$+XC9PqfzctjQiv?=tZ|*6UIg*-LFZ-e)Z;m8+nx3U_d@IeI@C&g0+HuJ1>lQl zGlx2J0$;BbwDW`j7ZUu{gFBrgv{&RJ0LMG;v|w%bypSGTXRYGggjeYUBT%2fQNA5x z=lRDE{E=?!i|PXX9Hu7fpbWVNAX`S-ZnmCxJif=mRGxBrID{c@%QL5=PZCmIY1V95 z;-w49v&P~{aqW|u>PO{Of3NZ5@v3X_T#NCG&JCZ`gWPp5kIHX8NX{>()1Kh-X7l(} z>CJNa`0Zi#j{CoR{@cH`XUE-f=hq+sw*FwbSRmjEjuW9ibU-jz96(->emG)oj(#ZG z-4SgE9`ZLQS269)*eoaQDQ@9cmshOxF>jW~^tQe!&+6QRl|ONYXM!#NF>>?RUri*> zR8(quK`nBT7Y|oDeYF#M$_3_zH?Ke^%DbqOOz?oBQkD)07oHwly;Xlj@udBgP6j&3 zu&HNN--w3(>brSEF7!k|5bemcApF?2{esZ#)A#rDHVplo6ok=T6Q1puekHbb(HF+- zyIQx+M)J?qfu-L08JlvSG2!JtLwmn9rf;06N%4gfh)&9n<#ANagCXx&#}GZ2oFDTK zWn=CzpHjaV1O!Wd99iHoSK7)=(Dlg^X@5NQ^Ja)6o%~r*tEcBtkEl=Bb+9Q4TE%L= zmnG07fPpu3W?d9AuXD1bwHdUZ>iclP2n2g8m*qC?d8VkkR!=)$`OAEzMW5T3QXca3 zWh$kvsS7#g&i!L~>vz%D^60-{=39E^TWom?mNwbG@&v8S8D3aM03P*YJwldH^*R?v z;wv774mrmHou-G4zC4e$uU-R}aU8}<@0HHwzCL-2U+_`p&vaos#;=TQEBWp^FZANh z;R8rOqcrYDmOGF4I)(}CQ+BIQZ97U^z_vXz7(dlkj_(#tC$Byf5Dl07rZHnT(QHsnyG;foyh|N3E6#%M#nFE1@%nG7t zcR||1T+a2)bzbklLeDF1SO3MwvZM?sEu~{muvl*5B^AK&d$?8ysVx z!(4dvVR-?^YCzhWB5ytSoBGesjc2Q~Zne-pk-PrORd=dA;{_KpxZ5w}mj=$4=iSB0 zMR%rr@PD+l-33nyoOP$`lWr|Mm5sBLwJ#7{tdUop$~WHHpgyRZ zBJ{+d4LiNZIIvsU5l{P9>0#U0(s%tOPnB(HEf$^rBcC=>ZiIvWnBg;hR4%jxO32WQ~09ouvad17N!Wb0qyQ<{F+HxYWIJjTAhmpK6O9n|8%Pwv!UOMfvZ zV)1u79mKN86k5`oeB3#T)cH)&%PH4-qKuFAkv??W@6gjP7E#`X94j0%oaFsGk!}aJ zm9Kh*E=L;vDV2N%A{E_sXo+p#AAs$cQ#`nQ4W@iS_pMH7`6!}TLJ!#dQRjNw+l8%s*w}{} zHLHJm(x#ESm?F|1f>g=`VLnC*KO2_fPSD)8s7)SZxe&mZa2LaKPZjtTb4>CgfWDlp zEf9kA2ezM{wTXR60&sF4^Q+bZ;&zD+$T<7ywp&5BBem$gd&dc9d=COAkS@0&wJ=?9rHk``>jPrNb^#I<>Qz&P)PrV&6FQv z2Jjpw_`{f>kadi^q=5<)6};!X$6x=Ef|8vdcd2q+8T&-f(Y}lyZMjGI!rl)J@oWA2Gg0FiDka@Kt8a}YfwBr&XrMS1r>%o?feMr>zKC_af4}6O}!GYY5LS= zxewikz$@dn1JVb;MM(wKPKn+HwGlLmvOBA9C=Hr+l90bKZ5v8&pD*Q>)?(JVzCr#f zPx;I809(1a`Wc+Gx0O9m&$jl=Vd0%lo&zxd=IUMz$9?dFkrP?YLCW+=V)8IXvnZZ& zay~uPB6X@oi>rz2Rd>dtNdJ4}D!={$cw< zi|enF|DzVl_vK3FLW{FEB5WwwTp*J;{zIpX^(P##>665R|K#@o_1Eet=vw`sY61U6 z8!p=Lix&KIwI`w1(PHXgj9P4I$+JyX`4$H}g{F@ow)C-`5svj$odxsH`CZ6g$)ooO zByi;pyMu0P2t^Jkb>fXXES%JX9(BmJDPy6a=s|(EHUj8!&}@D_v@I|VJuz+s={!2j zhJhzSI9AvYh9B50KB7X%JRfYhMB~wM2XxpF60GxRF^^?CKvO=d_$Z1PK&p7tuQC$6_rMP#>k50`T|`9r|ngpCbK8zvtuN(BP%aBcjxW?Lg}+g-C+9(WaF4 z+Ar$hEB2zDO2ec9^HFD26)bDTWj*ts@}v@CoF9CFMRUc1FoBveY>M62=wN)T((*lP zYD7i3pi}8e)5k*dc~6Cuan5y7PlkEHqwS<#=iw7Q`7)DPuan-vK;Yjs{*Mx}W;8A4 zUFqB46yjAt+JX@IqNDvw`T!gLL(zZXT6!>9_e&oRM%FM91i+0Q)mM49$1Rdwj%m~|$Qm!)y{ zoglvVt@)!}NgtrZjdOM1fkXG^c@98?X=>se4|E6ktntEot(OGyQ9qPn4Sm==bhlc& zK)yaiXS!b-zA1J(4?Ozudyu>SyqOH!*+}?2e$2B*t}-;x*B2~wzQ_OV?ymcI{k8k_ z?Yg_wxjWbWV#F5+LQb1cg_=|Q7c?RW%KKL_V@1IXtoa~rvrG6K-vVqY1HVplk@{Vy{cb{+T55=S9(w_2h zLM!DwIU9SQhHYTXz=aUD?q=xJPVrY-oCjoUS7Z#K|F8jC8*~mHoc9J z9d)j;r4>{o9OVA-eAWGp^!&B#{_D$i_lwGYj9vkJK1x5|h8A1<$ro*unIn<@EqO2Z zZC#H5S6qKNTXp|h{qa}w^M6ra{XuPj4%2YV+Hu*2;%m`zs8U+zdFw~g8an=h(9l`y zXVCR6PwJTYt2~q%8wdRr-Xkz9XbhcW9JIMGC7{>Y4|0@~9`k~eD|hO-+e#2hPy=wh zILP77D32(Yx?kUQwyv5$b10IdYegT6;9 z{$#pBrDBV6%U{rZS#ONKiaIJp(MBbHVS;vHR~s?<49=G!Fqd7j|4{9u$_m6$gzhr3CspA$X%c@}seJWs^rA zccz>Z+Q%4|O5?A}iGaN*njT0#`h_|!TJ%q*%=r+?Rf@9PAbIt6@Sv}<1)uczSkfOC zDjq#&%JHcFOTVZOeML9_LS!8{(ne|vy~p4m(sm=q8^LURf0uJa9PhqEOTbFG^5l78 z+8;gA2W75Kkop-}wMAy6x3qDD9#5lqLCJUzG}eV4ea<2>N(mUuN4tb^=dW#B&|7q0 z6ik}b4S1#je$dnB;FAZc%Xtv~7p%VVS7`7jFX%tjs&0tL$RGQpG6=oqRZsh~Jixwf z{=KH9)|;i)RtN6c#=?sZ=^giZi@`Ir)$+IWUAT+C)i;l$v7v3ECHC~GZWuWJ2;f2T zu`ZOhp-X&xQJ6dJx4t|7Q15Ef32DbNX{U@6U^%VVx4alna(;;(x^v9x*rlIE$Do|F zA$rb87pn(P7ThRc=LLM+eFu=Uw`cBfys>cZrU#@`yf2K+lx`%L}cd*hADPsv#SQoTl6!&{FQRuVph3#nAvsMC#RTALWC=D{?6Pqq%ud>e!S8;mvLRoP ze8K3hf>maW$VoS8=CLy)S8Y@r`W9IH8~wR1CtX4N-u{itO*~Yi(XY1R%T=lPD zv|IE<>dlkb^9HtcL!P1TG0%2v{p$~k902{NPrFdQhd?Y8=*q{(TWoC&G3F>i$$Gu^ zV?-QKQtYev-1%M$*%`FLGOrjjqi6;3|5QA0c=CX|9_kGq z&7yoRzszGD_%ZSYU2XZrSp1tq+W<#0wJpgrQ&;sgb(LpJelNCq55bU;5vHUP?h3@6 zf$Deq+hBi;1xA@^ty8Kt9z0@B2;w@WJUGbCGwsE(mHKSH!Kn@OJ^5#Pq8wP-Ty&%l z19|vLxne^L{Y6jJ8+v@qQ?Gf(7R`6@wGm65RezOfu=$IN2)vX{C1LRQzUzPDm-Q9B z+P-K5L(m=l*&`QB_zomN{e$m_RQalhV~F*G$JhBv0GseQuG&XlLGppccA-aI=%!ET z2c8aaG5ctQ(N^ga2fD};xN~u!(uF>+gCf!$dJeSv_ZFzza~w3o2E{l4B@91mF?+in{AEhQAc|jYsQE54w^5jaOY0r z493dDs^Vesy`? zU0$5~ky(OV+i}~ZFA-YtbBoCXeNcjh+Ur2L3HPS+@;$@sI1~ zu;mY#7LzC1JLUyT1Dx;M51GFJ0#0MY8|!F~L34HGA&sNoQLQm~dQ5$Rt>07sdo9b+ClJ*dK5F$o)5e51)(nT%;I*WI(suia0Mu zV6L-}mA37f!)RA&Ytqrw@FZ3~^Ga?8k?v*eLXlN{gV`^}`bP_T%=tdZ@4?;%`KC-= z!GRrp1O`7T>p-T+CTJNc5Vza4EF0duiF6nAS_I7v_W?}eb^;eAVV6db;BDz>=L6jV z`lErhJVuEhf?}S^f&;$tH^(=NR@)JH)vRG9L$SdFZ7VtRv zC#KKB6?fu`o}|f%x~Rx0>Z0w?;xNTg_t#!5eaoNoZ5{1aiZWD|`ck06{&3Quj!7RI zsDg#Rum)y%4t>mk#jZZ)G5JPl{e`F6Z}|ChIeiYlYyAYXF2;X1?;NJgAt-*gV5Ea` zVj-qXGEisWqLOGacY40$jWjx$KR`X;dDH@>prkxm()f*Z0v9$kSr_%e52pQ`%ejeW zOybdF0>>x&Ybnv0+W_AyM0Xx1Jc4~+zCyqzoIr}l!X0>uKZ1FVSMKnayA>5>Q>lHV zB0nh`d;i1dzxa_UMVWV2CWX>-j}dpGlu@S z0OIjE*jw%7h&jsAp0oRzFUJ^Lp5wdt=!c(d;t*h*6h7wxa8%G6OJA;UD8jF0q9ugR$0;0<3=-Jr7}gcf5zc z9sU|z(R2)~o3FVe&3>t5HC`^TzyRqsPn4bXYfS{~=AEBU?H`bd7{bHOp_nDS!n1-q@EvR3Hz<;gPq-w8}KqYW0E`j{sW zmr0G1S9yxiQ9Ja5KmU_2n49x`e<5$zdY#1|B`OO^TZA@2@k~M`QLT7 z>c1}!&)oyvh%fU0bs+VO^~sT~n1C~J!m_wKM)m5?0h<8^GnI53?5g`-80zjz$THKM+;!XPj&oALfZ@fSWYt#pg47&WdyZ+om>PrGS2i@7n6WH!E zKB1Glo&>ktEspPI<02M#X&H}=6A)?Jfh}Qtx19iz){X!_+1NbB*8|*++6aLOfq881 zgK_^PMF04+Py{85+SKju_Y)whtsWD#D_(*Z#|SMYD5YKWW3-*`R7Sr5OxM;6=)oU! z+be(Dz+>k6Ay4#!EW3|mEQ3!$DLx3}BIa#Jp1Kc|_Ye|CIBP1J=ZHesVqY zJ_6d+`K5y5x5m{)V3sQ?xL*zM$_RZ8f6C0sCSFC_>Nz==o^$0dl^2qtBmD?`XM}fo zvJT%p#s$e|*?$eqbowRcL(-yeq962cv|g7%>amlU`p_ZXLQA?bk)|@RfU}khSz}*4 z0Ndsd`vqHG^7|3_K>OE}^}iEo*N}gTz0R?GskhHV8T}8+!@d=5gwd73tA7>rZ+hW( zUu1oYX6=!3gTPoO+Y{sOp^D?Yq=2eiMyZcjug7uhA`7Grih)Bru9uQJZ&XG;o;;8q z8FSmr*Uvxq3Gzj5jHx@0h2BQ!L1&L5^+;JbhOBRWB|ioz74;Dqz6^Xv7N!E`Z;DbYFs)n$yp9A~{+Uj^zzT9p<5N5h+2v=7nBj5}4?RV(qUcKucpK5^8 zicMp;BYcPQf`ymA0ey_A_gMYlOJovToBQ;P>sy&|U0@*^D=qt*iP_M1p*{xrC`UH( z^VkgTPQD=~`&?bY@!uTJ9QrR^QobD6d636RuORs%k$-uDdBlPKGo^J-X+8!g?3tE5TkPim^ z&+usuD3ieofr@2vUih!@l4{)gK)s+U3C;=P92_7gy%A`|_lK)4=CqHnUbaWd$hUOz zr7Zp)IL0z?51XXi8RbPd4}7ms`H-b87Q%zjWjbX*$0hAXPpPLe_@GcEUt~mZMh!>%W&-#KN$j7oNg`F0Ay?iE} ziU`i*E)5Vo__J~U@&dusNydJO<_+O^Z82Z)*1s$#ng&8|=YoW}FrYa_8hoK|yzw?v zIp!LLLZoE6bA7&)`FE5n;F#b-5EmjUn7_x6;?Gq^AZp~lRJp!X1|5Hk&nnZuTwr3< zt8Vxv$3mi2jcB`(&9n-ps!2paRPa`7pOaMPT*XCaE-v5QJ#_re zI_EORkieZgz{(m(UXC1JB~^xeo?Cl_78t%OwSA%QIIF*OY(GEVbWgmHl6N!kJ_n_p z(-x@<>~w5^n~J55bU>d&c(HXO8$#LcL`$UJX|*R_cy#P8_zrpcUoppjI1jR3AMTu< ze+KhUd6*~l1@$464UWZ%^Sp`rn9!zJR42*{gUfCGSnd!^*+b=9{zGMc4C+IeK9sRF zrf*~HW#{pwG9{lQ6GUSM-eqwb@YehY;bVp3HGcVq{di}8%994#WK$mN+Kzj8bKdTm zzpsmJI}+#kw&9dtlqOF-^Tb*0liM_c`}}@;zMSs7{2JUZyI(5LJ}rhi@jv{B|FFEe zx>}x}pP$^`-maCNK0Q5g51%LIujJ6>^Yh}J7OnT2&GNm1h+m}QSDlDtYVlq?@1#@p z-5ZsWxzzsSOy#xcYsup(OEfXRZ30SnKvu`ePoqoL<$z2R;1Akf)dL8*d6|8B#y<3L zoDV(B$;GxW=;Lbmn|)vdLt^M1>)!5v!oZ&y_LsEtSeb47Y;rf+jD2}nb^r6*rn~?2 zKXiiS`?d;R%4297ZD{Bq^U{FQh75$=CnYft^~PX?rP?nkd=@BV=-5gb1Np*M8B0FZ zB|AR@x4u|vub{hiq8vwe=n3ZDh~wdDgJGBqOdI2i*9v((mmbC z|9knbzCRx3WH69UG_b!@w!@q(Hna&|o~`|2z{gu{?zGWmLmDj%VBC3WATMg;_lKV! zXn=N>|(jDjQ%F z4}9y@S$B4N(cRtOXoG*NIkK`H+IxFeyU%U!i&H6@_~SrJS~s@Olv)~$K1F!+TN*6 zSMvG9cX9bXH2sF3TuQ<(9+^H_@jiU%CM z@b=y4;|Q!d8ApF`DUOS0C(&m28xA+xT;%(*YwHLZ=si!g)tSHo*gco;JWaqG@=vTU!_U`eUFSJ-)e7L>zaeQSUE->C`PJ2G+k2L1{h1+?j zdB|8Wrk<;J=+t-#psnOT^|XV499S;b-Ob(Sj$Z_zo;Kh!e!3goj_@Z(n0hFu8rxHi zF)wcnopFIT=ozuNi6+U{*o% z@#O5(=O2D&KDO}+0N(te`@_|;d$-p4NNah{i!ls+tLhDH4Rmf+3`4+_BVlt+p-nBLm(BsW1Z=B~R=Cro47T%*@ z7#Agb7_-f7C+ZWM3iT9H9o1*aeb#y6>+|#GX0>|yrn=kpdi`*Hef@ZP zdiwDB^XKP(_wW8)JSruWPTs3{Jj88&9`g-x;uIj)2+HJpWD&~r6;S>wDdktxTXdDo z03#XmC%v!pUEKzu#RTrLmmOn!6|a|TX~&^t2})aR>l%zJ;^}wG*I@J4w{Ph4F6?Dm zdgFuqOC0jFIP!bMuWZ58C7X$Sw@-66Uq%z(F;9P_ujtA<1l)o5chbz4^wb}=Dnp z1@Bbn%aFOnomSGI^>zv-&Ga}9vYhjYQ6Mn#T}!rx-Gm6*CD7bj=}D(Nu| z{_LaH2W(`yu~X(9nC+U_gJzorT@HH#y0NrnOmB6ief!%fDCJS_{w{t+F;4om!LbeZ zi}X34JPm)AXKBT6m+?!!Z~?%Nh(j-JRn}wJ%DWwn%_&O2{XCKzVcL)9Vd8?1+f(St z11-v=Q=P$+^+_kM{w?#;JW@2)UGvnH`otJ7?SwQ|1n6u#bIuvXAAM2!!}4SQrv4_5 z?N$HKRnnYyy_~x?_~vxe-jpxM@xfg4Qz^6onstZ0&^5x5jzdvKjO;C4#&X$bio+>8 zKXOsl(d>%@!9VGfm!j6re4or@Z-5QgDQ)e!%sG&AuKHL$DLim0QXn+VD`S&4&lp{& z9co4BJY^7d&KEpcfUUlUFKvVBsfis`u2DtTx{(F1_2_TRZj06!i^e8%J&RpV>#)|J7rs&M(!^VvOS)R(m@z_nGeixQ8s#tyA!868wkuBJ?$NI!W8>wTWS3b%FiD1@S zW%F13$);J(fAmkEAN-XADs5QYe&PqH`l5G=*eFRSBtf? zUD;#$*wUt$jcrkM{U;`=w%OSCgFYJ6co|if>T0G%%&WX}|f6 zvUT#&pzClgNw!d03ZVk|z;;v6(v9ddMltg6Dnu;-GT{Cb5qek)8JDYEVAWj^UNb7q zbqIGEkLp*_Nc7=j2wtQp%YMq5X1*9x04jgg57#9Izh$ys`S{L1FIeLO3o<iC&d$S4NRhNf39uLmzXe*r7j)D^)*fk+oliZa(`Q z_2>!R0vC!*i}0q-Bd{G;tG9`s?z+soo_yiKM+(RuiZlE%#zLQm;+*624(GQ*j|E0O8d*vxi8L>8!Fx9zWzO)w;M&w#Qz{=P227k{( zohxUs8PMHZ8F)drThE z-zZwq7yVlJ5*ykO@gsb#Cw27jgn*wCDD}`>4@Mi}gf99P-F?4UAP~BcRGFR*eh0{k zRD7R~-w$*$o&)zw_EYIAwX;tfnrB&yFNM^Vdckeb*Wn5;WApE%E8vOmrN>>hfWlkG zXuF3~dpXy4LDY_U!nTjeiTrMT-wQf2N}8X=mzj2$G9pj8UIEG@t*PAoT8?`af;bwk z2{6z;wk1cg{4v&iFP*fCZqp&K{7hfW!!AD6QC%n0Zk;VF!7yJ{Ft8rYfz`!mdX2D02b4a?LhsK_#&H=GZ+p&^s?r|S70ed7Z7t6JmA2MD%0dmM zL`JCk#N-ot?kQL8o2Qj4$T+mevoOk%F`}0qr+<1h9bWU7Kpw7Au4vojk;4~cFjHjl zS84b-#q8tYPZ!}2eLXFZkE(mbTL=|LMe!B1uT8}W=X8N-R}2H}{h8Kh`znq45hPFL z-3$0bqL5YrF;6Ph;8uW%?U;VH`8jN5a=dz47y^4u`(L_T>FX)ZVrQK3am zt|p%tI=S;+?zK;OY_x%`8^!(ml($e<$D}G>SOZo)8D1+Kk*Hax)H7FOPj?W%wyie5!nOf z+rPQ`Lvfdmw(gbw=%Dy4?QH*A+q0T zXZ)hxJR_a8rk5Y$HhN;zr<#`Dmr1#+iWPiz)c^tK^)W#HlzBO#r%lIWwB3e2NQteO1}9k|3Z78XN-aZZJR??TryPPsv9wOBEOInu8Utt{RDSTPz z>x9-A^}}*W`BQ;A?fyE4f_K*?e~X^OEiL%SWZ6ndDs6;?rKgqh7)w1*t8hUf9y^EL zV(KV*3Kj*0K8GXOJQj-l0JqV%AZvX5wz$qWn&bQ=sehNeL4F$Ul%I#w`D#qhbHs5d z+vC5iYxBZ-K5A&SuAFa;c@9k)Ukx)-275i6<5!~l>ugQ~>-o=lQ2kT#yR>otox>1ys}jC9mnIDs=v`u3#_}o&kNBPi%SiV~Xvn+g5)#O2Z6&sF&jrzS!9( zXpPXZtEFxPhrd~V=H+zV^6Kh8`Q>!N_3iEL>C@Bc+3D$%Urx8#oLtJEcU|}NUXHzg ze(ruz`m4@yg!z6soi=K!U%U}bG8^$P&SYmTXL)ztN_kp=+iW{kO>=t~mJWxJng)^{ zo7_1V$j-2_&>Eo-JCJ6`1rRU*a|8T zx}7QXrm_XA)QA2#A)lPB{6e&+dj((~Y;!4X--(v3q{h2`-PD7eY$Ujh$iI*jIs*bv$nQc&`n-e=%SL^2Zlx)YgsK$;;__ zXG>aPPv5ydh1>QNIqslp9>>eNPW*x`0v=vY2hs)n$^j<>?mqejS@&3? zUfdNgG((nmDDbi^fEU*B_;ns*W8ls%{+zEb{at!qUdE&7s}(P&%(aO&(^r0x+`~8P3)zt4<#2vE9rLQZ@Xm7j<0W&vsErFnyr@lr zvhzljyh;7ZvbN{`w^-;rkxu!;%Mf`XVdzYT0=3xK(;UJkZ_&?}&?WdKanc!d9-A*O z1!O+rr`n*#%Fk;OsU6uH0QZ#Sr^eP}sd3KsMVrqZ*fXxI5$lsP(TwcGalzeLk#fbDLeB4imLrILJ(o&)-Z-C# ze@mnYqu6>E{^+CX+Y>}yvGyLb=Pa~R*y_t&rsd@t{~M~~459Lt}u*ytGd9ojf| zZn*Q$MFdZh1oG1{Kg4FwbJ&~#w(3QN)#zh}XP-Y=j|y_FN3CSigFVjuW8K42Kbi6^8!p0rM+8#NQ%<#V zVsFhQbD|u|?78XR7(0Fv(f676_H?!T zc~U#$&t$7@0EzQjbht~QyJ_;1U7D&Z9~{g5m+y@KQO6`FdwItRS#YHTj1b%ObL>; z1F@h1d`h7MDfDPg7Fi-fIcJ^Uhn*(0%3oR@Y7T%AQz{;KxceR>$gZ3ji0JGDgcv1g zVF0oy)kbZr?+D0kRq6vkf$j-{h*r;Q6_h&6H)kc2ALmM&-5=(ARQk_>M}}2PQK51h z9=3gOc;)x(;BqAN6aTjE|^U~5WU3DXZn1LrhF;^Fp}rvKi9QBz=QZ3 zEuZJa+>1@LDNtRfTgV<#vTboP+Ty&j@z^8gnBo>4&N++9Vltzu$`T3MNr1WklluaF z-Zax8&gxM_TD${!YD;;~urAk%EZ$b5#&I49kSEaS_PItUtk|qV+C4S8L#m8f6I~8b9M$=@$g5j%|r~Zhd z$}00ZvR=_>tl^^^Z{KvM*iXBoR>fVG%!WchbJtGeH7M|{Q9u&eM`y@@c+5BT!`^vK zjmby=c%1teiBCs=jQGvZzWgTUO>aIOkeENsgnnVveir%f7x#Pj8!!=^FILQ~(j=gw z3m@soI0mHo&(@u6r93R-VI!8rxKIQouB@yq73q_MOrezLG$irpHg@!m-jktcTW@&B z({(OiC#n7ALjRS!h>R=tq7j{rS3l2t5PQzS+p8-Xgo^S0ZI>R$ggz;bb9TzS6EJf` z7#2Pdu#va|!JXfKro7>|eTJAqW*;}tH4C%26{$E*>~v;w#y2?r7_-je%3Fa>i9kZK z!nJV!YJlzc*PaB}ol5>$9@LtQ*D_Nl+_SD5pEgrD&u;(mF9~p51N-hAvlZV!uWU3e zC$)|=BU)@nsvr(#EW4M}ZYxHL=KMzHxOQW7$XeavmLWM`@xK$3>*tGKCqFG*a9J%W zW$;`;xt|^@q%CEBcuJda*9c+KBUH;dI1D)d_PO-2*IuI6-L|Xe*HgtMHwx1I{vIjl zq)}Zw@t2}m`jZObIYtJ=MtwcL`GzEI(-%`cN81kwu2L0~pJ@D`sh#o!McK`KKxc4H zZIk|I4JmMXgs~gz2i%Su+c&1{?d;;J3mGW}@7w$Y5seFNi&HxDhI_cWKAzR`CLe`< zW*JGsA(w@H4S2xG`J>jj2I)e*GE0#|w6gNw@mrGOJgwf|COxUeA^pEjeET#jS75ip zcVg{SB+}LMM*2T$mWdQgg}fgcoQh!d#KNB99lS zGCbsT4PdjPvpIOCf?=|oQ}idXQ?7t5bq-wK)(c)Gbowkg<%`S~Keh|np#TP>h$l^~ z52J!L>)3wamx?cW9W>c&I=1^`#fi+j%=G{6FEKULfUcyl?GXeSnB0R@`QLkqf2h01Fgxn>B#gfbT(@e&DcB8Rx1^RLQG) z8vOc!+T#!wUtUTnX@r8~+A{CZEbmr<^LHav;o;-=8be0$iY6GI1bs4L>VfEcO+CNx z5)9bojt`9Pwf(Ow<&znf5i%|2Fd5M3z|!~jR%1oSbxTX1`Ly%zM3!WE91T>>iCat z+hX!hRwe2+3prt4+2TlH{zLE145Obxo|2CAc6@Nl=liA~da?+OB2Mr39UMd8mR0b{ z(arBZ>-wKi6;ZQ|$T(crpf}!wWB`nZfy2cl{J$gklWP~t7SxO)^d>q1Dt029w6=4W zPpJ&USsbN)&Z1|C z>=xU#Z&5eX#8e@KWRQba3;%fWzS2Y%)ys{-p+i9~k^)s|XFo9YtGJJ7&o!`t zWTV33sli!?m1>72;2Yp|#nc#h5m=MG3)2=?B*C|-g)9ikw#0DwFS5P6eE?>W{15e^ z7cwJqc;=zv8>>3)Z*obwiy9>2-3#hqg2uxJEmA%xz z^n%az*S>Zd{TtCnrqD1T?)-vuNVak-vwQ2vY3s^fS91B!<;oHer}-6#n>%?PHO+qP zQ1#pXejm5zX>(TF7bV>fPH#!M(YN_*mzZDW)73SnJgeTtBv&nYQR@)w_y-bNPPD5h zE%zI#$?AxHKF+I5PbY<~>gBuW zg^a$vd(?c+(0a-tl5dNio{Ox$XwETCP-tu>6cAV5&0AGIW;HK@ao_&xC!=B{D|$PI z(QwtKvmrooMI?pNK$W#Otr-PDe_+in1%&`HTqpauN`6!RcN~eXqYxB|$lzGeG+g>R zGW}=2M+DjvGhgKG3s+*CnHCG1pV0c_Y|u)T zkX_o#2U@I;w{*$4%r&^k?;z&et>)eIoF;`mQQffYm_Hd76ilmnx|%kHL&4!>s{vLr zJ?A@WmmO9mHnp`TlF`BkV`9(GqL*ubuEl`n+^siliF>K~P@Ke>YgL+=fhD^(jW;9~ zihW^G+dw`w~_7vrC76-wFp6XT(s9}#3xSC0^m6Ulh??XW0ysgvd{mmsu8*45t4%LG>5iehZ^6~9^_+G+Pg(C1 z5E;la26Ps$S|F7L@?Rs=l1P=S`{VkSJ~KK}pBz97`+PgxFk;?Xid)#a@3M37c!aL< zS;e)#>B`ir^7lSXy&l`Oe00NTz(T^c$N{J%e4B+NooM-JXaskJrsq#{?Cv==Xl00$&T^_B2g@ak1hB@} zY@K*=J^|*Y98z}Ky;Y?KZ!M(uUxm2=aeUAPyzcHQa@3`#ROjdJzZTwTi6y}R_I(?T+kM<5uw&UWC zGrvs~A6r=D>jM6>0Ru&X1Gu1Ivgcdm-5q_##(>8cdEqKz@IkunUNW#Zn%IUQVIF$m zy9}MYE&lWOx&+eUM0T$3?xM(E_fVjC7RsY>p4@yykbN*F6#UmjWjLh_De+_z@sAZs zKw`mq9K!1SCs$~^OoWDs@BQsKqCp^1V#S?kpVXEO&n*8lF>P@gp=iN%7_)ZhM?Cbn zdKr%&Y0$DDdnJL;WJD~NFpu#?0zU^VB1*yNMOpBTQY%_FXT6cw0Rv|#8%GI7XQR@N5CpVQlncHBX=k}buB1JSl6T9)YiRH(P`e8G3-+5kZs$kC1Xnq+$ zyZ!9=JvDIIucP52U-zwZWb3UNMcm!InEfYCN++t6ql;v>L_R2SX??|qc>-aDl+eHD zSu-r^NtYA^R|qD6hJGxNT(6jIU{I%8}_xuwQp78VLOo|99ZP zLDRuDvmLTst*=V}IPtrq(k2~Ux@n9!;}AMRguEFZ$Im@-P$K*=?gk9``F-iQ<@1fW zfr;uI8=zlTIO{!Trv?ZuOFbR+uJP!;B1@R2KT;|0BNqbVtK2nl;Qf7quI_&zP{Q2$0V`C8%POc(VP8OZi^LED++Vq+0Vw$LUU@X9SANE%Qg2~UT6 zDPGsXON~>cYfWk)(;_VS6EH1t?=YT8&i^a-=gD-a)+Lqj+k=zaq2?xZ2$iO!EzuN4 z;&%K1$IMPdA^mZ+|C^O>fmanSSF_i&>hvZlktbcT!HwJTAjhC2w>fSo@i);2zCi^# zdM;+ahRSe5S6X3T%GQJ~yHi)Q+D4#_lZ38CZkLPKU9mZ9eR{NaS}*HwaRP0>5^su~ zPHz_-fdr|pR3@$Rfg~=U(%=G+txze!sURD}mdrej1qBLmcNFAbG!YiehLw-j@?yB( zK!@8m4Y0n-G5xf}`FLoS9+0P}n6FBS_wOfaQ{hL_HY8uUDv;@BymdP~VVh%vhN{@P zw<^<9vK|gP|HRxjSfj$u{DcW_ukD;n+}N|H(GR-ziJ)=auJmPTlM$JDj*fDNyB6)z zJ?=jlXXrp1Z@RFC?Wo8^1FqhY-d7KQ-G8h7B{!v=2!FID0lz2=>99=;i9=*C2~{rE z_5|r;aiJ<`%(_VZ?1s61Mw!;JIP|BhD07dw(1~k^5Z-HqE8cJKRuh%415xmHpy}Xg z${In^HE*~>$;GY_+Ci{5pt4xj#zOx6$G6MCYyIKFzlMgkzxc?>*;0tyx7(qgl|$isPadNl38##eD94vpczo5_ zi|^!^vHRd2jF|b@`?%U-xcWv`(K(R)t4(BGtjaCCCdF|OtIL~4RO1Mrw*&uyo~Aok zNo=$*_?nx?&`S7@+jm7-4LSWKgfh$d=J203AFnY@e$vdNlU}xKHQ)XTy+FyZ-(_nG zm(TTed_kMhHRopA_-6pmGCfCKxy%Ng50mw8`V4$B9P??9S$tKwhhJU*W?AJwU4k(^ zFNUCGt?9Zf>E?1YehA~gf3oJ`>P)`h&Owb6XkY#ex4Q=q#U?`3qa%4! z9~sn8-Stp42^^az=b#0z`jdH;N~+U$-+WY55;5H;-B%QgCark6G!-B4p+{}b$g~N- z@rRQYPh}i69jp$F-H+NO!wtTK2@1cC(HXb&2BTNX-KcRcbeYt+)19-|%`ROt z?kQPeAIt$M8U;T*vvbyrUGB_2xE*NR?ZBQfI@%T8mr{CvHe%|!$&;Fq<4#pmR>n8HADJ$W#0Z# z5^I#0Qa%|U*T{Fu>b{QN67zP*uU^~mZMe~)mNT)`?rSf(o@02{xytsd=H}TR`WeRq zAr0!$7p)0TnjVI7^nvF;Ia;pUt?<^(w|uU7U>+m(S|dlBKxJ<@L@p5DE0aI^-c_5h zr3KNOE#%^Ytqznmfs1+Q&VWw(W&Y5k9bEBW(LfBN#Iun{E_r0UB{oyM2y7ZaMy~zG zu>9OwHu7R1Cg|-ngb&0VpGchC(f@Jfj@(A+l|4rr zaZa~aZ9S((RI8&g3i6*!6zK) zNuBPE3@z1DW=l!{PArhk)U`TX*@^17#}4z*Tg!U|UbKIDix8_xclVF&{)~4?t-fq6 z=SU1$pAu>|_oPZDn$_^sljRhgZREn+Ta72by_E}01owr5| zur!`!J6#I1U)KI#KL@TCO6#u4f>YsxW1D}Sy|U3J@MyTc|Dx7jt(RVM>GWd3t>DuC z5&6xp$Lv}iwlOWIBda%XZOSz&x;U7Y2}K)V2U0_4I@{AyF4CE@_*UBVv4kwE^yG`* zn>o-WHD;8PRjGm~xj2~>R`HWh`jaa4>8}jHj``F~Gu+Y1<+U^yxGi@n@aU!Nntgoz z(u5+PKBfZK&o35F zSn*+;!-ytP@31U{{N$&@8BQuaY!`A*h{1T8DT@~xVHYM5R*q?(3^n7FxeBFpBRJ(v zcU?|%8ch8&{B~$hHSaG^;0;#8ns0No7Y0vsYM<-Q2oRM6L7}K)^t?UxqJkN{!KruT z?EQG5qUifBPgbR=bvOczJtg)`-Qod+-U%ht8ifi_216i%iH{egqAHPEkYRJ#3V_8B zKQ(Vck>P=Lv-qh((rw@=35zUQanB)5Rac3g9-BhiZA4;4tryBdRD}I63m-cnsh&07 z(#sGCF8L;TbzsM_u9V{k8_#p*XexYOkfRR}-p_&bL^C)@t6W8!zd2L>0Eyr&dLtOU z6MqAi^}Of_85vaV##M3;cH3i3?spTa$BtkGxUo8y6r^<;K)nU(n3;bkH#n|0#ejo# z5l(}4WuQ%Z9?x3EvtcKVUV%IVWcdx`1mo#WiNC^&RedCz7xNe&`hoR{W%2iwGB!L> zcJCal>o~dNq)+(V6K(=gU)z%51+>iwroR8J+zoQ9-BHuh_JfRPIM1)7-}KgdQgS%_ z%_%rA@ZTEqS?gJKheBk!_-!F7)pimKrV^6jLe#qmQ#-iFUKgX%XCs)hL8IvcUQ3=X zv(*geG9N-W7~KVA)5vd-dJ1- z>e2(dff1iTkDsZcGZ){xQAaP*ob2zG0(_$!RyoT%#Pf@`Fiz{ zS8L|-3xx!cEJRR&&O57`zov?ie3cz<3L;c*Tzj62(Y!fbq{KkXBU{14%s_CM9?i~_ zL`I;AW{T$~0dX0-FcDJr&AA{fgbZa;p~Q!jA*`Aa@4U6JVuWwuss9yFBm*e%z^f_f zgbz=@5Kwmh&rF#3R1qU$k`YGsCDvmhUr!%gGb<&YdWAiJkM3)od4#nk5DjjI3Z$MVM?8O3y%|gZeIj&$&}47T zBVJg0eumn<9m?~YXh!j=3h;2}BJ-2t>Vj8?S7|M+cLv+5Ozc%8fh`Ts=JPVX%2|zP z-IFIT9fS@*DRbW7&jRQG(YTzT_B%I|P69YI**O(Io!i}$ zSrOz@h)D2GTxJ+B6Kv7ae4J5~y`Kc?^?!La`1~fX6vT6DB#NK=^1)%CB`wR2c-XSh z=Viyy&7(RCt4vV;VU?4c^G0+0)5*G@PmTpvH_ftap`3Pd z^Bpv66-|i`?>JYWV0n)z#J>U~Pi2;OP-X`?(lf#H>T^(`a219-%!)gokoxLWxO0O1yaLCW;DAJ@+CzTB$?+J)~LNTL!1` zHKOh4*IjNN{!lPs_Ph^X^r}iKhHnb%Rk&r?b~JL%DBVcTUc^PL#taQ_a~GQw(PUDS`2ws8%pc2EU?O~>4^)%GrB zMhAQoZm9o3r%iGVmY)J_$8uzNUnJkzA~RrWSmD@LZ2+o<3k}YOW9H3VR-ucw9pF`Y zNWFEhiA@lf%!X}oS0*FG5`|J|27KW5dBPJ`e|<&(jPM6=!is9zRMryJ1Dxr{f?3#9 z*KW(hmWBepGmUsADGymt-roSo6)3|j;@(IBxFQ~Tky!7E*3jXRN&*q}NsHMJ97I)Y< zk2;JqV?pElU5&uSt#;?!2V-qQyJn-(yv`r9Y$WX(5yj4eyYwe>^XAIsN_7eTT zR~22;xrL{s`isk3wE9;js02ihnq7u&seFOkeDuXrPo@>1^H4ybp@Xj=U@ z&8i|FO|fmK&6X+)Xi;_;rh*-&O6oz(Lj#+Za1&7Y&7`F9?%@vM_Cte!jl1(yDD!77 zMo=o_Xxo;a`s%z==$-MmQbsc?TAg>4P*|}2rK>ty88bTTV;UmE^A5ZI0EuI+t*1HD z)cY5{(}hFjoup#{6=VGz@EYURn|EkWK?=y&H*&7U$E-N)Km?|-tM74Q%c)}AG=>G@`cRU^CZY?4iLwbh4NjSd?@7No|2nVy^_dhi99iyGR-~&4z0y^yQeFGW1hKh_t544OC9JIQusnw%MFYiTI`a@nLA#Sw-uD(q z0jA1|t^*4Vl<+l8$(g5EeSH0~rxp%>x$;Si25+$RgyD(aP-U|mISQ>L8XNAk4Ymin zEM_`)#NN^P$+615-3XuF`{9mqO&H)vu74{1p(jqpFA_If4~spi7_Zn_Xl$?n_3t|G zUO+NrTM{i3AOl+|CRu;dk!}i;S4LzoONI~LOW0Ydd-GDe%;vq?`>g%W{rl$-T4T-x ze(JT)kq&%zH%`)CkW&vV#F{K88muq3cF!z=!rxhwncO1~IKt{wuLBs*bMD@zIN?jiaP{$y*Ypcg zCly_D%bRNFD;pFB?fw%Sv!<9_xMB-vJgaB!#OzXK+?^P@h$ezWc-8atNgYAt?a<34 z2#OfPie{xCvV+hH`}@y`IW{lLfbCH>;EJFao+=49$P#Xbl1p6Fsc1HOia9hqBfW|m zezhkdN3~txDxbI0b{UB$H0g220uUz_O$lO{=FgH5dTv*qie!EaBGv(vmC$#EmBt*87VaiZ|x$xIYrCbkzwJREhjt25z%*Gq&>3dWqF}Ly2!$T2SyHmr$VTf6Y_T zJy3Y48|87#jdR%cDkXj;DirSy!tlT%-;$2ErpYH4bbNF~&cS&&j*^+rv#~OP<(g}ek&x+`^oOO_0I*D--bUkNi~OVP*kOvyxh0h&4d@h zx9I&h9CC=Lw4B8je`TSi4f~I-`&IV%PqPyom5ev&H5b>~UpKG%UcUZHQ+v~oBIxMw zU-*{y!|O0*%311)9>R%n((^@3@(-PTbz=4}}EWY`+|JeNt$~ z!s}dYiWflx^Q@C}QWctYdBT?zHW3fkuC@fFTYHCxsEx-^nCsK^p%2!kXiIZ>ZA=CL z7Bmp~^QLrF2cmjgRI7HPKunz+6uja#r-|}XE^(=fRNop;>YRZWTK*pA*#2anFpOE6 zz0MIaGV~dsBxteo_V}~)JyYZ(&iY(rT2pPdirw{`R3 z*Vcx}Nj>f+Y>jNE4KcQ6ZjQ|$%Mbi-!gd48g6(PJc6W!o<%~SOmQ085MGSXw_x4ww z-YD380_;)xYqve~4?420a+IuO&;Oh~ZMxa>qLw0PcI8LL#o!$RgJUo_=N|a)p1>RY z(TsYvHd1>L#8rC7U-yUWz#*x^br?)iSp`uvc^Z41g}wc)SDf{CVbrE=Nv{#?Mz&$L z$lmt66|IGtj`}&Z!1ds-wle{CL+G)9cYOpx48-y|Y3@SwZDoe|J`sB{=an9?`3T1N zXPb%D-#8P93mJkEwcnxw4}bZtzxr8%dmGT0*>=FiStLu8M5Cq(=Um3FNR-v4{%Gzx z$8^A-w&6XAO3Kbb1*_MHlOJ6&g9_E&fBSLn=yD?s(He;e9-SAdZZmMy9T~!-+lv>V z@IHX=p99!=gpjz3IEQ{`_cRhokDlH-t~eo*p{B_Ueiw@;`*jT?wJSpDjaTCpzX zQ*Ihger|{*_Tf1{WZH-Rs=nlTX<;K&|MrplT*l0Ko6N4jNR~g%k-4w)wq;k6?FIC?@wnrg6+M$EPb z)1tz^HEEU}k1erZ6>5xT@~2Vplvo4`{1{^FSasXi)DAYzcn$C+{oPxLs)5TX{~5uS$0yg ztzgF3i^t69%VLBT)UU=a?H>jJ6H#t$<)g)Q{uhBRSTP6V!sy*5WdFt!cWb>ypojb0 zFOQ*`{(c?!zRPe`z=-9Nor(vifBBXtKJ|91Lexn~#4bJHR~!&$`SqV?z+B2IM5G#^ zbvk%&zMs8ahMU z6wcEi>cJ`DV%oxG6cRHQ7TxkZcJtK9aA&xD*ga$Vtjl?n2_O`zTO3<;D^RSRn5l$B zxbWV?vF6y!(FL{l0q8c~-73R0w0q&`3k2~BXwSBz_NB^uCvld>SR5P&xS#)<5?@4SL-rS?A;~_-c;qw#+T_7r z8=3#ZMUBf<@ZgN00`*M@ALku(a?;@#fTb7R;xEbHE`U)dnA|l(G6g6>fFG2@34C-b zIfxG%_1N1sj!8idU0OV|djdOhRNH(E{U%Md#^fVlL82Jt3sqUFb1vQwk#{Fagrm7w zw?`K`gk!mMwt9X0!|o3b)c6g;sHUXDrPf@KC#IG5M^sr3W_}8wtj5spg5;xCS&0w& zaLxyU?miCS1JyVfBl@zY&qRZJ#TCj;1*dki0*(Gc8;@3oTWeNtz~UmN&ws6eP}Y{L1TKENH%QCiC;X*R0UVStpPeH>zuCh>yJOx~wB@ES7*<+G8LR``4}=cIc)# z{2*0%##*4&8yj_~xXl>}@pPvaYkhiJ?Avcj3rWN3)({hZJRR#Dr1}B_+*-8&C zUznXmHd!)VqgJB7hyHjmOjAIz<)>;#nv`E9B5P>feZOyB_S0Wr<}B z5tC9~?8e%?d`=$5(c)6K281tOnAotk-n&z{x;3m%45s)KxtX{y(p`v?`{atN2`-eK zl&d5P=)C7W>13jFphUUy6$50?c-(&!RX-K$tx^?@4olM8+zlODZ*>Dm51cXTYhShk z>(rX}^Wb=p+sEfqls0o!N_CXI3uvr(_22PRMl znK31^Rdx#aZ(XLQ)Yo$m&LIp{0-?-4W1!$ssDQuPcj{fsS6>k%din1GbUmzMmgU34 zH(|B9@kS#Mt|wVLU-(WUPsd4`cz-Yk9{6>R!%x;zyP$_((^c}zf*~8s#)ngt3XkD! z090KeZmwZp{hY2N1-Fna%Y1=_7|Dh=Tz$;Uyk*j-tZ~UGGpDn2-?Mx~FnJBIPZl$4P#(?#ah-uks{>3h zk|cN@u8BbY+JhoU*eGfY*J#cmBO6Rc_H^PI5uI`THKz zs{>M`3~-ws`x@JKh!20p)2Mbf*7p7}^@0n@H*N+T*|o1&!t#v^sgyo0ruY@kp{K~Am?{Z7_i^#ZB{s-d4K=h~?4({iq@Zns*Y>oWe zm;ZJG+?YGk&d2O@p#ir!Zs!Y-{`n_udvX9@M>G4A4a}dO*q#ugA8rLbECQ0r`qF3EG8j| zvCM(O1K&Q_T+J5z*w}!H3B0~s|8|=9+Jsx}DeNZIBmH6c;W&APRHJ&@RDV&#K*X22 z1*`sD;E8_Hs0+1v&@k)XOFG*6mQp3#8^2lZ{g9Au(OP(?PWF-D8Fc=xLREbPl+{CS zJF5B0W2r|KLoXBWvhzAJ&XMa~lMum!)|rog%Cm#LD~=+^PNRt*4h@cFJk})7$mv6y z2FEz%K1D`;lGR&FQuF$!441rb@scfc?-)+S*sB<$fTl`H1-Z zjm`STv4g@*VtQ^{H&uss)v^tHt4<+jAg zx|_BAMJvIu!IM4%Co)cZwQpa^} z^a=frsiJ~owojl`esM)aG22}V8Wlp7`HWWQwp_%{e&R@>Y=n5beK10{3qE%aR{+cBN5WJ0hZ)cdm=Bf@OmAy zwF#EXPjk){f0x)6?aiT5KFhio(}>KNhnVCcM?k zRaJA9Y2_R$b-mqGuUX%Jc;`4^!3|`qeF+FE4vA>TFeN9Z`3}V&P&~1ztdH-|#4cFg zCoojev^#|GOI<#Q%gx77sa6kGTeN`Wh1axpItz;N7~ z6X{A++VFu3N5_ndQHZUJtDRXyTnk^#qP)~LNYvdT|cpJ8w4DS)GPH%>Z8Km@yc zXwP%B5*1O-pmi0$>fbRxQFphpTH;<@E?c!6Z!~`1CI=fzY_MfqvgUIx$WkUY;`Yo- zqbrv>E(dlhw>Q-KZ&YiQQMNqp4R#}dPz9Cjo2;P|%ynns3Ue`Ef>i{5HiU>z zw8d3!qnv?G0y4VE$KJMCe<<`1SeCWhCXLQ4=a~ORB83u?D&-vpJ8~GQUKh1|e)w+P z4Ir!wJSGV}Ol_@OVbEAS+sVOuQ=Y#0UByyRMO)pKpn0d6#D3ER(}4ek93G*?70qur z=OFl+vYaD(Z4z9uwEHGv zm2+p5y$-Yz4eTHubbV+#%U45TJVR7wgRI=7JXFb)x>wkt;r{;}sjA(``O-L)s4RIG z3g3O6RI(yWJ1q8fw~adMv>-0;o}fd{OOrj@ara|B#2vpjfV}+yPPfH8xq(s@aRDm+ zqZM)~Mf~o0@On^f!)%Eo5p!dGDcS6>`V|&esX%Dlw4vC!@vUO|jg%+cWX136-u$M) zwJM#y;a%F*mZPi9sStVCuETk9oIbbxldICdMYmU!<7w-T+>}D6@aD(n`U0^npH*VB zas&oO8_r~kYCk8gJ^{Q)i{smJ++gpKQ~HuWIO!JlMeZrx0obSB)lSHl#D_nfZMfo| zz*#djD9ob)ad~!Hm z`)y*)u z?ateHD6%(zoT%YUZlLnB@E1S`o)2_AV~BCS6axi=pyyr4Beq?7FS?~MjRv|Q)v!V= z2-slvx?Jy_*f|z4pB7A@<tU0$Wt<~J+Fe4`H()0D8-*D8Vh z4Dm6LAGtYSj})yWoH!>C^Ra=qO4dP?_~K#6*lO8nheA}9W%ntr(c}t`w=KKY`Yh#- z6)ypRr(a}Amu+Nq8oYaW*CVSwH0uj$PPK}D1LERbqqs9QXI|x)%@w3`9-g(QPjSHO zDa6|ulHO;#@ZcUefP3QZCU3Dof*e`4+`5JH=@CACjTQ>2@Me$c4>73QL0FZgVjfnl z;KK}Qa4iOqL-Vt$&i`G6BziJzZSjTRu-0m@H}%k9bs@KH++W&=jpDOys^pXu_c$Lc zE^xPNfXbecxAlr5cV~%;$8PXfgz^p@2}z*LZ{_&D^Dl4yW=t!J9R|4SeL$R>?c<#i zRA60I_kMc=cA4B}y)5#)M&04YvV6Do*oSl8z0#|!JSQ)(l`Xz$*IG=9zR_TXeGKDz ziiVb>mcnme2^b!qP)(%y-8KkJ7?Slc`vQ4zDp|5jXBR(fD|9w7+hAlHu<-~fgI-Ui zp5-+=y3RWSoybyT>q$h+f9RGk8$bR`i@17|zsN%oQ^(hE*UXnvH0s@}yal_8iI&zO zjGPB+iUxB^dc*@6MT=BhGi)WZ?s|BVr-;-$obP)^dHu~$vY?JL*tBQ`>$s9o<;yI3 zNYUZB;T=|5tN-AYZ{h(*gHIP|*iDc+cR0hB-xJ@6aLe8HPMs@Ox$7Z!GbPM6O&?`z zikA&5z-*Mc_SC#0p_bOQkKM1}w3!=$_pQ@sIGeUG&+=Rxai`D&t*!eNP_VJNeqWKEp^>HN8w{XuLp=1&!>8dNpS^!x zR_EGh9g-uk{#MZG%B0^Gu=(%K$15orZTLEh$=E7R`iBlLcw(&^M>!2B$EK*?m{d`3 z{GM$4jmxtwbZMZ3{5zGDVtB;|mkoBJWfVm1 zsgUT#WKObuEl-=H^oxgULHHk?rbG*oHY)VLPYuA*to+lyLe9JDU%v&lT;omyUjZWb z@U~f^isHk&FyQ*g!}8;*S2lnKT3q=G|1R0hTSM5)`u4%C<>Xuf{YQE6o5~z+z5+Kh zWCY5B7>qX}Z-3Uae(osqK<-??rMRJoqK`8}PZ;Ge$E`AFqrMC7!%^FU0PX-vgt-Aj`!XKlQWbo{^rWF@!Mf_h;@gJC;Gg$Cl^^6X85O-} z>lsfq2w3BX4lW{}%}qiX3fr#E@hU!6gl z=~wI-$$!MkkdIg8XO*JJe@D0gAWxCmp4+@shA5&AhEIukSS}+JVNEXL9&zpVi9#V2 zD$TXxy9QZg_tN{qfo$Xh>D-sFjEkU4-u(UR@lQ7CT|6&&>~`4*svLAf>D-JK?QLr4 z)d7xQUhWcdq}@}SUj*%dhbWn#H--Bfc%^#}>s%-zyD9U$9or1og*gCH_`~91#>~zYJ1_KS!M(+jUsb6= zXX`TSS>V+ws?6`NEizgv#*Yu~sHjjDRY|(?{SA(>bB>04hhtNtL^SU3Q!8Wsp{L0! zl0V#!)JoNQcFR`{RtgGioAj*{ zVZ~uL^CG~Bmx|uzeiE!%MfoEtU=s~_WO9=9j99{kTm?k?3~`UIe%t40Ce1}C=tg@E zt&fM0nuGcKPNnqO+TX+GttV{xY3jUR4f&W4S6mz_L`g=8IUH*#Up&v3lu-(j`B?3j z^t&OwoC{Diy~@i^R<*7=DMX3`vefl1*AKZXI*?`hCaA7k$o#I)2MZAgGl4jWrCzr0 zwD+}EU`f$xUyX8f+5y=q4k~F+7nW1 zlu%`5USz-XH29hT4qDSZ~_rn7&x?cjdqW*+PA{0b095_4%)+IczDyI2?rh#g+E zZRF@OwEYNY+K60he?+L&k#f}D6@DK$2Gj>g%E`J|xQ9f8HnftYls9w>g9`cEhr4VY zk4*@po>R4><8%U(a(tOFftT{8o3L%J7G>WH$&{K2!Je9X-je#XJ29!bc?RV8WNmkET7oD%eB zyzbo!sosZOJBt`m{x9>X#YXFFi@)dU4!OII2A-?=n~m})F5K$n!)MX8|2R@CuPAsm zop;xImC)|U1w`+UBweuaI}}DY76c#qxVR&|gZfZ*XKe1}>kZp&w3{w5;6DP+(*zRKyMWoi?pA(feVLy__*pj4xyiD*TN zW{P8ZDGV=(s3PGgNL~QYr#86jT&n=B4-j|NHOT&w0+X&w8G{erv70*4q0# zd!K!z1Bx_Xasz$6GVA$-$6l854_9O*0&4*=#M{mVm{cH5jxR1wZ0{Q&^m4W)1=S=Y zqaeP2ojJ=Jg&XzMRK-fVP&CHw`1b-9wb#*7vDhH{BTR4z?t2f}ryUv(KgfP><ptqUgd-n4t zx18(>3(leNLK~ZmOXUrx-&bklq->Yyt3yRMvbgBqm&Qu#7q4A3g$_cKQr2l5kkVo2 zsZPwF&x^C-cNn=oY}z7nM17wIgQS2L2dT;5t!WE=qq)Y|3oTzTUDIwc>hPCiuvho` zDiR*EeF5a28rt%0_*6siN9Ee7xbP31?z7WuchybHdx_|`D=8uL5ko@jTd||tL{vnB z=P#!cUD|1oMqYr+N^5*VXb-Z)C4p^}%oswK=D!eXnv;vn}z&G&F)#x z0{iYS2f)9@txp8aaNu4kN0v?nE&k3XL%kSXp>Me}x`P|Ch(gaBVubsIi!-#hf0p46 zv11sS2ZrJ&G_R|UpTN8Amb{%8IeT~f;P@QqbO=;tA-}7%SZ*S9A52p$79SH(Lu)G+^(zA+lMi3eapkd zz7dM|>v5~2MJ-(0I@ia^U+l(Qq=`Yg)mTi1_y^BS)uY6Xvu%sD%bWYQwmrPx(F>vU zIHkI^Ib=Y11Z_epdxGem^X5vH*pe-=<4!^mNM8>VbrQzXEhW=j(a)LO!F9}5@Fy-1 z81(Uu*@*)Qq}WWvlkIHF!zsQbdui9(d;}$B$vAn*dV!rKaSUV}?L;(Xd$Nxr_bksp zzm(Iv@&p5mQb#g@;-%=|M&ABa=0*_$%tEv8(Z;o_{#`(;BLu7sfZ+}OAoEIpMdm$i z=m+7JNf*R$0c+{`5}80C;JY1lCkKY~h`L1rfnezcL;Zs9`J}k`=Zk!1B&T}6xXXPC z&zW!@d{>tXntHIEYpCZ~vpe7>yYb%sa2G z52^NgocpV1%Dmbm2M-IHcctCnw^4bF6 zOUYz1O?P}&HIG?oL6_DUWzN9Sd;}y*BkooRRWsRifM1ayh|#xR#XW7`9{7k~uA{)7 z{n|RAt-d+k)ZH)vW&-?BHdOU-adCt$lN9!L&}E`qOeA~x@>ohz(!%2B&zzmQb=CAZ zW@{_;EEbDG?P!PA!s*<*o?tR@A%4MF&hQmYxq?KRq}6(`yki^ZjpZhv_lXMQhzZ)A z9?{nD8B1b!kLkFFeJYm|UomN~M0k)bq`W zbQ#PmWhrr4yR6xyh_nI=R+g09K`ZRi7*y?O2;^3uW4yVh`{xr=swK1N$LK8724Eq@ ze^}9&9#`$!c+OI<6T=2n{Oa2=aFlM>NHej&*+kHUwrq!L{k~uWwu_^x>2eCmCs22( z+l4?G^Wi#X-Z~~Jt~y0=zv4r~1~pt`wt$&%#VLobK=|TVKk&UcKbc|RcQ{PW4E|$uEuT`W zrJ(Hvr@j6YcgTmOLY+O+s7^5()w(^JX>m@AX6S#(77^} zLuNd&(p&TL<`Z>6?!m8qw#EtL7M48#MK+o!7#EIf$RO=Smjz7IQWFckRW5OMc9xI_ z_XF=OOxvMl_B2`?*GzQq4V=I<00=rKqmNlPY@H|qaMKW7sXkPQ2ZVtoG-yJB{qIIP zIj}aK0AHz*EwFEMtds^@_3*2Derl$^yKCGZ!-keA){yA$O-7SGqOpW#(7=~H3E)r~ zbOsT47(ZvV1|-s1ch9j~a~j>^BY=~?!r^cbdl+LD|0$$Lf;Ex%Mp98oG+HB{opoZY zfN`F>e54R2;1X8Q)B6PcviTPhxLdb{9ysskN+1Gql2;jY0!2)LFOM!fxc-t_ za_+?R?v!E;9RzTQa zbsE+IZt|I9%jxTaveNGpFP5moVyzdqdYQ-$5q{7csx2VmNKm8Yb$>e$16m$OyH7ij z1wBL%x4Qx2r(h`y^9V|cx&JiizB1opOmHu9!0_{ra}_RtTPppEW(s5$X0rZ9tYjh_3ER{JXjwPkXU2X`kfQ)MWUjr7jdAoOt;Tka6g zP<}nz@ddlD*}vc}gH`F||Bi9_>etMDn{{lX5>;Gh&4?W!p!NL^1vvVaRHYYP& zQuPaAj^T^DFhEq%i!L6uW+Cb}A}wIUj-jk;pUOU2J4LeI0g*``_Hx#WDC? z%Z%j?syC|Mhpa(eCoY}+nit!0`W|f}8B5YL5|o$kBr8HbUt;A2MUqJ^zEe-Rt;h|{KPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D82?E`K~!i%?OJzO zlvny4l|DlodT+zfdzaojh$0Fq0wSP*1ySsPf*mVSED^IB4VuKYVeblv3L;=vih>GA zlR5*O-~GstxY^{lyIHfzA34wSKFn?3J@>umeea!bp#6nEHMSKB#)gC_pA677Zwixl zs*5rAIx=lsKxTkX;0|BofNPU=JugL?SjSJAq)rRiEy5f1zr*ghIFbJ4fd<@#*5itU zl;)nYlgPR2D|6(1w8oj9MGlwW%yqwU(?|2h)v+SiUW6&1|FFpI=*y+!Hx@?O$K(a* z+9ggKC&hcz?+1S)2gx!|OW&?#kz&rdpTcN~AV zwSwb8GvPJWfhxB->7MWUH-vUS3)kb6+6fKS`bnccOa;yH#u&^D0%zR>R7J3H%|;L} z$Eo4tJUjGfd!b{29j75kvF*7l{ps^@N+%oVxy~${|;ZdTS+a}5s%)g z%XhZik-w>Nq9mtbrWTrK7~#3E44%6%@Y-Jv&A}>Yiq=EN3Mcetc;Z*F?>DWmGr{3_fri-O(JSU)h(NyzAjtIesxgF`~RFe;Y2ls;hlrB9=B= zRjBL$Te$m;lN1^z$l_J3KAN&UQJ>?0H!Do>I);U2Z#gstDC2FCF`5@z;AN;1s_p2g zCH3{8vUojC3a|X-Q8PgUFUHHF+(QsGeo7qfLce;>&Kbw+mIg)c46&2tP5qzYmbbc2 zshjAkG!4G$X!+57XH7)V?9W2ussOYVuSHiwE?(5cpyp9Hny=45<5nNkPSikcpaSZn zHSuDc3?4a);bpKQYW*e9;KM{yiWj<$W}~-gCz{SKM17_Y-c8XPY)dk2`H*CK^-qllz9~XJxmD-(kTy7U3<+|s5(-bzb{3R4>x_p(3I)a^M)h7jvA(II{Me)i`8ILOB!=Q!Fw?7*WkUp##rg4eB!(80+=fA4qrcrp#|#BvP1! zp^s+>$r|*a7TvfH&fqn&=qhkHkI?zua-wGq)C4lxyJzZO>e@CpX3Oz%2_B_iLC`|c zZ6=C|6=q|~D?H_TGxeF6&Y)qx6%)_T`=XVz1ns?B(A)bB+FCZ_L4_NttGw~Heh#`@ zcAy`Z(8oE8u7j~?aF@c%Fh#t-5|2)NO%{0zLwJS$p<2@K9tL~QV5sjBS-?vSb(f=M zcLHksrSKtKwWWPs#EE0MnZdNUd;C0R|BOr>E!Tra!sjj;@O2eiieQyC9kEjU_&P-u zHP3zVu6aH_wC+L=w*c=u*5Q7oGoCzj!n?Xz#M7J5+E+k4cL!*`fcJaC@!~L9VD~n3 z4IKct_cVrv9)mmh5`%+f80LHGmCqbeR~JJTu?8Le`D9zK0^DkR_>ha*hGcYhZbw&lKDeB}V~|@+wx1A2CHe<0 zfx|sdyj@Jl){-%=(EL>bo==oQ^CTrs*EFNbBcU#HX`WN*Jc>Ud#ZGbTg?$EvRS%td z9^JD=(GDG~wh}~khzxEQ8Q{@lQ`9}1f~FoK1ESlO2dOCjW-RVMbV1$wc)V|0jqaX2 z4E3G@2JWI`U?1vQlF-_;9^D=J80i0w1XmFuRt*f@$KcR)qS<01i82h}DOtb^^j*$I z(_|Sm1k0dpzEk_tjS)xZq|PwrQ5-?~=GL78MnaIGwML6MI#0 zw@43<%dGJ9bvW8M8_|1v9?Fx9u-8otCzr8NbAK9Ix=A|Y?j+v(e%M=0om)t1i$ZJ5 z8gzf$Pdr&j>MO~PpGL>gB($7P1*hvWA^D1seMN}Bz+mYPyqjf&cUht6t~fl@|*m(T@?)5#}qC*{IcvNXL z@3iUa#kZ~Ym6hvvmEJQaSeZ#ZiVkaBNtad&sel_R-(*RXh0X|#~E5R=PS%#T$+ z)bA;;wnllmId0uC!nIpkD7|WkTMtc8^w0oTm&&5dl7W^0B|Ht6#Q|GB>@pNY5jou+ z+lb;#iU~eGT2Ce~L3{INynmO7_LhzK@Le)Kq}k&`yeU3J8KRZC^pGRCJz57n2jjr) zyiN#~lOUsX{CHR{1Dp%!@4L|7KTuM*`S3nV9#tAGY)**P$=gypN&5 z+aw6DksT@;_}E{1eaES9y?In=v;|S_R)zO0zB_wVwfn0WF`UWJ!oBNOD5=uJy$VfK zlv&_drY<(?FmcsX5N`s+Q8!T;r|e{~MN=H#nF*uPQxtW9!f5nWKU#}8=?6E3S@A#bJ}Rx601 z&`1a`{ec0-oog92D$sX$LxKx(z~ zRT}N!r6B!>7hUrYO_piPQf6SIvJi3*f)`hYz09aG!RCGJ3m@O zlyTKr5o>knIAtt^Ck|qG9;kx16IpmMNeMSyMe)E+5G@ll@nMDyA!`h7tRlFRWYHR` zfQASiG{;$?ElwYeDK_YOzK5i-a`ZQRkDeoGXp6N*^BN!2KRNUu^1#>eJgPL>vg=VQ zC56s8`2lk8(pBi#V#JSJ79Y}Ogpf|Wyq!e;W@|dusWFhRLxRbkPVS~`%yD;xgANI{J3i&f?PLiDEK5}v{?|m_1L&j`0v z77Z(v$B;`61DRyYx9W~Uo)H5!uH!-T%K*)88u*R95N>IKVsejd50gP-2n(g|5~y|` zh5k?`>f%h0u{;B;^m5RmZ-Nz`gTk4f7$Tl-CnsS`lrA}D_0c+&cyxgSIchD?5~GDz zsdn6hhc^{^o`0ahWBLQWshnYdID>t1r#Yi*z3LdOU`t}1t|W5Ug2>Psg-n(R*60f$ zOK&tL>9Zi{Ive~x%OGw!6{B>WTn%tLWoE6 z2SgWU%M^TRw&AcJvuUXoAKX}K2-nrZ23=9)utc#+LxjkJh73YpkL`gmHp!6moCg`} zSzxfnfo2sAY0qeE4su1~L}}D`@S)624yh4SAfHkMg%wSZn_CEx$XyVMzmAY4hwyZc zCkA3jb|Bx1o9CK?JKG4YafE!N9y%j!@L=zZC+X)_kL6MPN9>wyGG(uaXyqzhu>pN; zLx>rA!bRU4i&#=vt0{my?a@fnl!PqH83Ja6oO=?)9OFUP35K{?1ZXbvVd9^N^Akug zdD4*TW(TRsxnLyUg4)6oNJSrm_{8lHpM41?OE2PLaxf63hJgeV45S$1agr-G&xynB zNJn%p@#;PPb><$E@~gl6jbW;p7i))w;K2=gLfwYCMxYr4fT8OTGqye=Su#WtbfjoY zLrTXIG(t|oIhj}-=!QO!G7g1^{X$6ktwusfATnJwpld$`eB<^*G4>lMB_4;&y8e6}TNT)BgtMi~`6^+zGj`Z4jJMNEUDedD8>&Ji!#Zm(PJ?)+LB! z_P{3XGK!O3`cEa8p0%DD`;US3b8ImYm)NH*yVj4zYGG)5gHO*7qm6wDVIMHHZJ|KC zDyr)Yrj9R|=2O6+WMJ$AK_VG3yC{fzuZBp-HjMH~2g7w9lmfFMG5u?ZM<0UJ_$`nQ zB{GOQ1~sDHc~fH$m$DXW>7@`~Sr75$H3&#uJ9IP7wr1P3ka;wpXFuIze+}Q7YHH6k zmOZ9qVAaE5`+#oX27Wz%2(bbnsOL+(?E_)98zc<%l)F%xcV%dK zd}Qa2D6c}V=v5{>I{zBU<}zMJ20Ayzb-en8b-f_2?F$)AccNjJVQ=%Xy}_WieryaF zmNOu1;17nyWXQUvLcuo!k}fF_cbNy-2|J(|^*2aQ+5pLrjgXys04me+AwB&7=(Das zCg~~^W}gK!;R?KCzv#=0415$Bmyk|NulW~W#Xmuu1&!ZCUw5X6p?j4eJCGwmJj~R# zgAma!o#h1vAumj{ENDLsbcY!bH=Y1d^GM=ZlFkBFg5kChboV6?4=39{^EkvNZ-sd1 z7RXKc5-Jh z$UT!!&%2(k<3Av(>j6GPM+oZ>4-*sCb%&r;7{u(SLc(kkgv_Ty(m5V-0n5PjT@Fd# zrC^4C3Axy#kcr$*yt@VRlkdA{8mE5 zb0uVgvLQciH55pG)gm`8)ub~}NV)*6#dlz`?itr&L&ba3Rp%}ntt^;sJ3r^QZT~-k zl`P1o?;X!zyH?Uw>^TgUD;R{V0Fi;9rZbU2An1gwkWC~M0*PMz(jnrrilnPGUW!EKmlR}NTYmAB|EKXFrcS^i?P^@kOCGkqr5hBD~}KC9^3uJwZI z_5%Xit`H(*g@|{>jLFe#HXaPyX;2PY3faI+vi+OLskI5B!RsJHZd)>m7a^Z|2S#hE z2kbUiwi>TEdq;QSfh_$c+w^%ed|n6|hiV8Jc;yRgJGIfZoQ6bo-M}>RB|+vxbWBnj z2{t+BXvmODj!JMklqRf(Z0LHZ#(o9G#8Y5r-s9SBtNdWK?nA#dTcz#MCSxrfvaYB_r_5>R^lv8v-ik5YTiaC!ar<){~&p_Cbg0Gb z=a{d)_TFaWjoYT_1zCnm_Wt}m*5^lhIz}^XCPoRXSUwUERpIiBDS%H@4#E=hU`Q)N zL`DlD3Wg9?Cie&pTXNqe7az6wf41$$gG&EdhePsHlURR3QFf(*-)gMcA z1njT{R?7N1XH+!AI@OI-plfRga|i1|d;f7Y4l@_6)7yCZf3MMBgZr8tQZ^F;)@a-4 zypl3d9c1ciK*3P6*WA~oC}h$6$rFJwysm#dCLXO4a9X=R!g68u9rL+q9Q%~zuuaNr zw@Tf5+-d!xPu`~dNnpRL(#2|R!FjuktX}Umnebe-tI2WG>HTJTSATjD{AYnn?hPB$ zCAlXo(^hmju3QD{g)86Ktv@b_NZpeIQYOQxh z-bU}8w{&=2{yb1m`_d$QWlX``%*fUWv*U*%lBU+hZOK`0v%gH6*X7Rxse~;$@o53O zFCR;ORdH=k$FZ;HKUuJ6NtSZXxu1S%`Llo-nWYq+GJf&pg2YR2%eOtaa6au~QhwS3 zowY~Qd0qa(U--kYbLY;;-Me=m*tc(ADP?(idFyyh!`QlYs|u;xI?_(;=B{14+^III z?X-A{Z<6{S^Q*tVzY*`RC)G}#vyUnV2M4S2`g5qyRNZF-H3@IByCVcg zKoR1#)&IP01fPr#q{^R=zdPLFbAmj0BK2_I1fAq>60a%9!^7h#DG!*Kn3R+9!XK)C zgq)C&P==qMUmw-S(9p2h%gbv&`P@VZf7H~}EGB&}@$3*WFJk{aD6bGarwCIfFE4*m zN=k}DCLN^6kS<(eUkrEt0m;NZve|4d)n~-WST1?aDRp)Aw^TbZiYWD$8c*5hxv*0@ zB@{ENHm&6Zw0?rQZTF`AC$1Y8UnO^=FgjVNW zOJT8C98yP3Jd&auf0iXiy!fe|Cic6(QlfM^5*(D)Mu-fP{S}NzU?wqZs^a$on^+Dp ziWn74RK!ygk7(`FK%q!E5ep+mjiLHe5}+3Mn%M7-ktqMvsMPam1XKC)=Y6V(QJ{!Z z>ZuAK|} QVE_OC07*qoM6N<$f;nJR0ssI2 diff --git a/SCP/res/images/air-balloon-2.png b/SCP/res/images/air-balloon-2.png index ac7b7e8b782f6df9bcde36384461271679664f82..b71646634b32dc2525a41edc25dd8d593f2b6a72 100644 GIT binary patch literal 15556 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 literal 4602 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%0D{bLip66E7OzUdYWzCtfquD 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 L`njxgN@xNAR?TEV literal 38326 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 A4FCWD diff --git a/UniApiGroup/App.config b/UniApiGroup/App.config index 796219c..8e87a7c 100644 --- a/UniApiGroup/App.config +++ b/UniApiGroup/App.config @@ -1,8 +1,8 @@ - + -

+
@@ -12,28 +12,28 @@ - + - + - + - - + + - - + + - \ No newline at end of file + diff --git a/UniApiGroup/AppBox数据库设置.ini b/UniApiGroup/AppBox数据库设置.ini index 057afccd9909f62078ab14bf62485bcbac635758..2d0f119db040457500b0fe9f243ebe7d935d9fdb 100644 GIT binary patch literal 334 zcmezWubP3Efr~)_2$dKLQuC50$5q#Khbu8yfklED0vUW5f*Dd7iWthkq!NP;k`CVV zg+Uo%2H_5H9VtLnWej=@$v{}nkjaq8pbI8JBKZutKwFUYzpr{6471CO!HB_t!5mEm z#7(>*A1Yz$f*G6{0vH?_3V_fFXl4aNJcAoUIGR3^W6_KiFj*G{ zR|XTH%_a;k3>HAz5aCQczGj^>^Rh{f`bjxNugt<8 diff --git a/UniApiGroup/CK.SCP.GrupUniApi.csproj b/UniApiGroup/CK.SCP.GrupUniApi.csproj index dde5b76..47b3c46 100644 --- a/UniApiGroup/CK.SCP.GrupUniApi.csproj +++ b/UniApiGroup/CK.SCP.GrupUniApi.csproj @@ -26,6 +26,7 @@ 1.0.0.%2a false true + AnyCPU @@ -47,6 +48,9 @@ 4 + + D:\连接orlcor\ChangKeTec.Utils.dll + False ..\DLL\DevComponents.DotNetBar.Layout.dll @@ -64,11 +68,14 @@ ..\packages\Newtonsoft.Json.10.0.3\lib\net20\Newtonsoft.Json.dll + + + @@ -78,6 +85,10 @@ + + False + bin\Debug\Z.EntityFramework.Extensions.dll + @@ -86,8 +97,16 @@ CktUniApiButton.cs + + + + + + + + diff --git a/UniApiGroup/Config/UniApiConfig.cs b/UniApiGroup/Config/UniApiConfig.cs index 4d83a75..eeb392e 100644 --- a/UniApiGroup/Config/UniApiConfig.cs +++ b/UniApiGroup/Config/UniApiConfig.cs @@ -6,12 +6,15 @@ public bool Scm采购订单 { get; set; } = true; public bool Scm发货单 { get; set; } = true; public bool Scm条码明细 { get; set; } = true; - public bool Scm发票 { get; set; } = false; + public bool Scm发票 { get; set; } = true; + public bool Scm大订单 { get; set; } = true; public bool Qad零件 { get; set; } = true; + public bool Qad价格 { get; set; } = true; + public bool Qad净价 { get; set; } = true; public bool Qad供应商 { get; set; } = true; public bool Qad供应商零件 { get; set; } = true; - public bool Qad采购订单 { get; set; } = false; + public bool Qad采购订单 { get; set; } = true; public bool Qad收货单 { get; set; } = false; public bool Qad采购收货单 { get; set; } = false; public bool Wms收货单 { get; set; } = true; diff --git a/UniApiGroup/Controller/DBControllerByOracle.cs b/UniApiGroup/Controller/DBControllerByOracle.cs new file mode 100644 index 0000000..2a5d3a9 --- /dev/null +++ b/UniApiGroup/Controller/DBControllerByOracle.cs @@ -0,0 +1,120 @@ + +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Data.SqlClient; +using System.Data.OracleClient; +using CK.SCP.Models; + +namespace ChangKeTec.Wms.Controller.Report +{ + public static class DBControllerByOracle + { + #region 建立数据库连接 + /// + /// 获取数据库连接 + /// + public static OracleConnection GetConnection() + { + DbSetting setting = GlobalConfig.qiMingERPDatabase;//中间库数据库 + OracleConnection myCon = new OracleConnection($"Data Source={setting.数据库名称};user={setting.用户名};password={setting.密码}"); + return myCon; + } + #endregion + + #region 执行OracleConnection命令 + /// + /// 执行数据库更新,插入操作 + /// + public static void ExecuteNonQuery(string p_sql, OracleParameter[] p_par = null) + { + using (OracleConnection oraclecon = DBControllerByOracle.GetConnection()) + { + oraclecon.Open(); + OracleCommand mycom = new OracleCommand(p_sql, oraclecon); + if (p_par != null) + { + foreach (OracleParameter parm in p_par) + { + mycom.Parameters.Add(parm); + } + } + mycom.CommandTimeout = 720; + mycom.ExecuteNonQuery(); + + } + } + + /// + /// 执行批量更新,插入操作 + /// + public static bool ExecuteTransaction(List p_sql, Dictionary p_dic = null) + { + using (OracleConnection oraclecon = DBControllerByOracle.GetConnection()) + { + bool temp = true; + oraclecon.Open(); + System.Data.OracleClient.OracleTransaction trn = oraclecon.BeginTransaction(); + try + { + for (int i = 0; i < p_sql.Count; i++) + { + OracleCommand mycom = new OracleCommand(p_sql[i], oraclecon, trn); + if (p_dic != null && p_dic.ContainsKey(i.ToString())) + { + OracleParameter[] p_par = p_dic[i.ToString()] as OracleParameter[]; + foreach (OracleParameter parm in p_par) + { + mycom.Parameters.Add(parm); + } + } + mycom.ExecuteNonQuery(); + } + trn.Commit(); + return temp; + } + catch + { + trn.Rollback(); + temp = false; + return temp; + } + finally + { + if (p_sql.Count > 0) p_sql.Clear(); + if (p_dic != null) p_dic.Clear(); + oraclecon.Close(); + oraclecon.Dispose(); + } + } + } + + #endregion + + #region 获取DataTable数据源对象 + + public static DataTable GetDataTable(string p_sql, OracleParameter[] p_par = null) + { + using (OracleConnection oraclecon = DBControllerByOracle.GetConnection()) + { + OracleCommand mycom = new OracleCommand(p_sql, oraclecon); + if (p_par != null) + { + foreach (OracleParameter parm in p_par) + { + mycom.Parameters.Add(parm); + } + } + mycom.CommandTimeout = 300; + OracleDataAdapter sqlda = new OracleDataAdapter(mycom); + DataSet myds = new DataSet(); + sqlda.Fill(myds); + return myds.Tables[0]; + } + } + #endregion + } +} diff --git a/UniApiGroup/Controller/Datatablecontroller.cs b/UniApiGroup/Controller/Datatablecontroller.cs new file mode 100644 index 0000000..65e4fbc --- /dev/null +++ b/UniApiGroup/Controller/Datatablecontroller.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.UniApi.Controller +{ + class Datatablecontroller + { + public static DataTable ToDataTable(IEnumerable collection) + { + var props = typeof(T).GetProperties(); + var dt = new DataTable(); + dt.Columns.AddRange(props.Select(p => new DataColumn(p.Name, p.PropertyType)).ToArray()); + if (collection.Count() > 0) + { + for (int i = 0; i < collection.Count(); i++) + { + ArrayList tempList = new ArrayList(); + foreach (PropertyInfo pi in props) + { + object obj = pi.GetValue(collection.ElementAt(i), null); + tempList.Add(obj); + } + object[] array = tempList.ToArray(); + dt.LoadDataRow(array, true); + } + } + return dt; + } + } +} \ No newline at end of file diff --git a/UniApiGroup/Controller/NetPriceController.cs b/UniApiGroup/Controller/NetPriceController.cs new file mode 100644 index 0000000..1c5ae8a --- /dev/null +++ b/UniApiGroup/Controller/NetPriceController.cs @@ -0,0 +1,68 @@ +using ChangKeTec.Wms.Controller.Report; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.UniApi.Controller +{ + class NetPriceController + { + public static DataTable GetInvBatchNetPrice(int rownum,string site) + { + //var StartRow = rownum; + //var snycCount = 100; + //string Sql = $"select * from ( select rownum myrn ,PURSubcontractorInfoRecMid.* from PURSubcontractorInfoRecMid where plant='W21' order by i,mtlNO ) tt where tt.myrn >={StartRow + 1} and tt.myrn <={StartRow + snycCount} order by myrn "; + //Sql += $" Where di_batchNO>{ls}"; + string Sql = ""; + if (site == "W21") + { + Sql = $"select* from PURSubcontractorInfoRecMid"; + Sql += $" Where di_batchNO>{rownum} and plant='W21'"; + } + else + { + Sql = $"select* from PURSubcontractorInfoRecMidFW"; + Sql += $" Where di_batchNO>{rownum} and plant='U32'"; + } + var dt_Part = DBControllerByOracle.GetDataTable(Sql); + + return dt_Part; + } + + public class PURSubcontractorInfoRecMid + { + /// + /// 工厂 + /// + /// + public int DI_BATCHNO { get; set; } + public string purOrg { get; set; } + + /// + /// 存储地点 + /// + public string MTLNO { get; set; } + + /// + /// 物料号 + /// + + public string plant { get; set; } + public DateTime validityStartPeriod { get; set; } + public DateTime validityEndPeriod { get; set; } + public decimal netPrice { get; set; } + public string vendorNO { get; set; } + + /// + /// 批次 + /// + + } + } +} + + + diff --git a/UniApiGroup/Controller/OdbcApiQadController.cs b/UniApiGroup/Controller/OdbcApiQadController.cs index 286a768..0036022 100644 --- a/UniApiGroup/Controller/OdbcApiQadController.cs +++ b/UniApiGroup/Controller/OdbcApiQadController.cs @@ -15,6 +15,19 @@ using CK.SCP.Models.AppBoxEntity; using System.ComponentModel; using CK.SCP.Common; using System.Configuration; +using ChangKeTec.Wms.Controller.Report; +using System.Data; +using ChangKeTec.Wms.Controller.Bill; +using System.Reflection; +using CK.SCP.UniApi.Controller; +using System.Windows.Documents; +using System.Web.UI.MobileControls; +using static ChangKeTec.Wms.Controller.Bill.QmStockController; +using static CK.SCP.UniApi.Controller.PriceController; +using static CK.SCP.UniApi.Controller.Vendercontroller; +using static CK.SCP.UniApi.Controller.vendidpartcontroller; +using static CK.SCP.UniApi.Controller.PoBillNumcontroller; +using static CK.SCP.UniApi.Controller.NetPriceController; namespace CK.SCP.GrupUniApi.Controller { @@ -25,162 +38,149 @@ namespace CK.SCP.GrupUniApi.Controller public string Domain { get; set; } public Nullable EndTime { get; set; } public string PoBillNum { get; set; } - public string Site { get; set; } + public string Site { get; set; } public string VendId { get; set; } public string ProjectId { get; set; } } + + public static class OdbcApiQadController { public static void GetNewCtrlList() { - List _lst = new List(); - _lst.Add("xxqad_pt_mstr"); - _lst.Add("xxqad_vd_mstr"); - _lst.Add("xxqad_vp_mstr"); - _lst.Add("xxqad_pod_det"); - _lst.Add("xxqad_prh_det"); - _lst.Add("xxqad_pprice_det"); - _lst.Add("xxqad_ppod_det"); + UniApiEntities idb = EntitiesFactory.CreateUniApiInstance(); idb.Database.CommandTimeout = 60 * 20; var tableNameList = EnumHelper.EnumToList(); + //DataTable b = QmStockController.GetInvBatchStock(); // var qadCtrlList = idb.xxqad_ctrl.Where(p => p.xxqad_domain == ScpCache.Config.QAD && p.xxqad_scm == "0").ToList(); - var qadCtrlList = idb.xxqad_ctrl.Where(p => p.xxqad_scm == "0" && _lst.Contains(p.xxqad_table)).ToList(); + var qadCtrlList = idb.xxerp_MaxbatchNO.ToList(); foreach (var qadCtrl in qadCtrlList) { - if (tableNameList.All(p => p.Name != qadCtrl.xxqad_table)) continue; - try - { - ScpEntities wdb = EntitiesFactory.CreateScpInstance(); - var authdb = EntitiesFactory.CreateAppBoxInstance(); - QadTableName qadTableName; - Enum.TryParse(qadCtrl.xxqad_table, false, out qadTableName); - switch (qadTableName) + + try { - case QadTableName.xxqad_pt_mstr: // + ScpEntities wdb = EntitiesFactory.CreateScpInstance(); + var authdb = EntitiesFactory.CreateAppBoxInstance(); + switch (qadCtrl.tablename) + { + case "part": // if (GlobalVar.ApiConfig.Qad) { - Console.WriteLine($" QAD ӿݣ{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}"); - UpdateParts(idb, wdb, qadCtrl.xxqad_seq); - qadCtrl.xxqad_scm = ((int)UniApiState.ɹ).ToString(); + // Console.WriteLine($" QAD ӿݣ{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}"); + UpdateParts(idb, wdb, qadCtrl); + EntitiesFactory.SaveDb(wdb); EntitiesFactory.SaveDb(authdb); } else continue; break; - case QadTableName.xxqad_vd_mstr: //Ӧ - if (GlobalVar.ApiConfig.QadӦ) + case "price": //۸ + if (GlobalVar.ApiConfig.Qad۸) { - Console.WriteLine($" QAD ӿݣ{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}"); - - var qadDataList = idb.xxqad_vd_mstr.Where(p => p.xxqad_vd_seq == qadCtrl.xxqad_seq).ToList(); - UpdateVender(qadDataList, wdb, authdb, qadCtrl.xxqad_seq); - qadCtrl.xxqad_scm = ((int)UniApiState.ɹ).ToString(); + // Console.WriteLine($" QAD ӿݣ{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}"); + UpdatePrice(idb, wdb, qadCtrl); + // qadCtrl.xxqad_scm = ((int)UniApiState.ɹ).ToString(); EntitiesFactory.SaveDb(wdb); EntitiesFactory.SaveDb(authdb); - UpdateVenderExtend(qadDataList, wdb, authdb); - EntitiesFactory.SaveDb(authdb); } else continue; break; - case QadTableName.xxqad_vp_mstr: //Ӧ - if (GlobalVar.ApiConfig.QadӦ) + case "Netprice": // + if (GlobalVar.ApiConfig.Qad) { - Console.WriteLine($" QAD ӿݣ{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}"); - UpdateVendParts(idb, wdb, qadCtrl.xxqad_seq); - qadCtrl.xxqad_scm = ((int)UniApiState.ɹ).ToString(); + // Console.WriteLine($" QAD ӿݣ{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}"); + UpdatePrice1(idb, wdb, qadCtrl); + // qadCtrl.xxqad_scm = ((int)UniApiState.ɹ).ToString(); EntitiesFactory.SaveDb(wdb); EntitiesFactory.SaveDb(authdb); } else continue; break; - case QadTableName.xxqad_pod_det: //ɹ - if (GlobalVar.ApiConfig.Qadɹ) + case "vendid": //Ӧ + if (GlobalVar.ApiConfig.QadӦ) { - Console.WriteLine($" QAD ӿݣ{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}"); - // UpdatePurchaseOrders(idb, wdb, qadCtrl.xxqad_seq); - UpdatePurchaseOrders(idb, wdb, qadCtrl.xxqad_seq,"1"); - qadCtrl.xxqad_scm = ((int)UniApiState.ɹ).ToString(); + //Console.WriteLine($" QAD ӿݣ{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}"); + UpdateVender(idb, wdb, authdb, qadCtrl); + qadCtrl.Remark = ((int)UniApiState.ɹ).ToString(); EntitiesFactory.SaveDb(wdb); EntitiesFactory.SaveDb(authdb); + var qadDataList = wdb.TA_VENDER.Where(p => p.UID > (qadCtrl.MaxdibatchNO - 100)).ToList(); + UpdateVenderExtend(idb, wdb, authdb, qadDataList); + EntitiesFactory.SaveDb(authdb); } else continue; break; - case QadTableName.xxqad_prh_det: - if (GlobalVar.ApiConfig.Qadջ) + case "vendidpart": // + if (GlobalVar.ApiConfig.QadӦ) { - Console.WriteLine($" QAD ӿݣ{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}"); - AddReceive(idb, wdb, qadCtrl.xxqad_seq, 0); - AddReject(idb, wdb, qadCtrl.xxqad_seq, 1); - qadCtrl.xxqad_scm = ((int)UniApiState.ɹ).ToString(); + // Console.WriteLine($" QAD ӿݣ{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}"); + UpdateVendParts(idb, wdb, qadCtrl); + // qadCtrl.xxqad_scm = ((int)UniApiState.ɹ).ToString(); EntitiesFactory.SaveDb(wdb); EntitiesFactory.SaveDb(authdb); } else continue; break; - case QadTableName.xxqad_pprice_det: //ɹ۸ - Console.WriteLine($" QAD ӿݣ{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}"); - UpdatePrice(idb, wdb, qadCtrl.xxqad_seq); - qadCtrl.xxqad_scm = ((int)UniApiState.ɹ).ToString(); - EntitiesFactory.SaveDb(wdb); - EntitiesFactory.SaveDb(authdb); - - break; - case QadTableName.xxqad_ppod_det: //ɹ۸ - Console.WriteLine($" QAD ӿݣ{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}"); - UpdatePPod(idb, wdb, qadCtrl.xxqad_seq); - qadCtrl.xxqad_scm = ((int)UniApiState.ɹ).ToString(); - EntitiesFactory.SaveDb(wdb); - EntitiesFactory.SaveDb(authdb); + case "PoBillNum": //ɹ + if (GlobalVar.ApiConfig.Qadɹ) + { + //Console.WriteLine($" QAD ӿݣ{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}"); + // UpdatePurchaseOrders(idb, wdb, qadCtrl.xxqad_seq); + UpdatePurchaseOrders(idb, wdb, qadCtrl); + //qadCtrl.xxqad_scm = ((int)UniApiState.ɹ).ToString(); + EntitiesFactory.SaveDb(wdb); + EntitiesFactory.SaveDb(authdb); + } + else + continue; break; + } - //qadCtrl.xxqad_scm = ((int)UniApiState.ɹ).ToString(); - //EntitiesFactory.SaveDb(wdb); - //EntitiesFactory.SaveDb(authdb); - } - catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//ʵ֤쳣 - { - var sb = new StringBuilder(); - foreach (var error in dbEx.EntityValidationErrors.ToList()) + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//ʵ֤쳣 { - error.ValidationErrors.ToList().ForEach(i => + var sb = new StringBuilder(); + foreach (var error in dbEx.EntityValidationErrors.ToList()) { - sb.AppendFormat("{0}ֶΣ{1}Ϣ{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); - }); + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("{0}ֶΣ{1}Ϣ{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + //qadCtrl.xxqad_scm = ((int)UniApiState.ʧ).ToString(); + //qadCtrl.xxqad_rmks += " SCM:" + sb.ToString(); + } - qadCtrl.xxqad_scm = ((int)UniApiState.ʧ).ToString(); - qadCtrl.xxqad_rmks += " SCM:" + sb.ToString(); + catch (OptimisticConcurrencyException ex)//ͻ쳣 + { + //qadCtrl.xxqad_scm = ((int)UniApiState.ʧ).ToString(); + //qadCtrl.xxqad_rmks += " SCM:" + ex.Message+ex.InnerException.Message; - } - catch (OptimisticConcurrencyException ex)//ͻ쳣 - { - qadCtrl.xxqad_scm = ((int)UniApiState.ʧ).ToString(); - qadCtrl.xxqad_rmks += " SCM:" + ex.Message+ex.InnerException.Message; + } + catch (Exception ex) + { + //qadCtrl.xxqad_scm = ((int)UniApiState.ʧ).ToString(); + //qadCtrl.xxqad_rmks += " SCM:" + ex.Message + ex.InnerException.Message; + } + finally + { + EntitiesFactory.SaveDb(idb); + } } - catch (Exception ex) - { - qadCtrl.xxqad_scm = ((int)UniApiState.ʧ).ToString(); - qadCtrl.xxqad_rmks += " SCM:" + ex.Message + ex.InnerException.Message; - - } - finally - { - EntitiesFactory.SaveDb(idb); - } - } - - UpdatePlanToAsk(); - } + UpdatePlanToAsk(); + } + private static void UpdatePlanToAsk() { @@ -195,15 +195,15 @@ namespace CK.SCP.GrupUniApi.Controller " ,[PoBillNum]\n" + " ,[Site]\n" + " ,[VendId]\n" + - + "FROM [V_TB_PO_PLAN]\n" + "where ISPLAN = 'P' and ASKBillNum is null\n" + "GROUP BY EndTime, PoBillNum,VendId,[Site],[Domain]" ).ToList(); - Console.WriteLine($"MRPӿݣ"+_ls.Count().ToString()); + Console.WriteLine($"MRPӿݣ" + _ls.Count().ToString()); List _vendList = new List(); var _detail = db.Database.SqlQuery("select * from v_tb_po_plan where ISPLAN = 'p' and askbillnum is null").ToList(); - var _first= _detail.FirstOrDefault(); + var _first = _detail.FirstOrDefault(); foreach (var itm in _ls) { TB_ASK _ask = new TB_ASK(); @@ -214,9 +214,9 @@ namespace CK.SCP.GrupUniApi.Controller _ask.ModType = (int)BillModType.Contract; _ask.Site = itm.Domain; _ask.Remark = string.Empty; - + _ask.BeginTime = DateTime.Now; - _ask.Buyer = "MRP"; + _ask.Buyer = "MRP"; _ask.BuyerPhone = string.Empty; _ask.ErpBillNum = itm.ProjectId; _ask.EndTime = itm.EndTime; @@ -227,10 +227,10 @@ namespace CK.SCP.GrupUniApi.Controller _ask.IsDeleted = false; db.TB_ASK.Add(_ask); _vendList.Add(_ask.VendId); - var _askDetail = _detail.Where(p => p.EndTime == itm.EndTime && p.PoBillNum == itm.PoBillNum && p.VendId == itm.VendId && p.Domain==itm.Domain).ToList(); + var _askDetail = _detail.Where(p => p.EndTime == itm.EndTime && p.PoBillNum == itm.PoBillNum && p.VendId == itm.VendId && p.Domain == itm.Domain).ToList(); List _lst = new List(); foreach (var detail in _askDetail) - { + { TB_ASK_DETAIL _t_ASK_Detail = new TB_ASK_DETAIL(); _t_ASK_Detail.PoLine = detail.PoLine; _t_ASK_Detail.Currency = string.Empty; @@ -255,21 +255,24 @@ namespace CK.SCP.GrupUniApi.Controller _lst.Add(detail.UID); db.TB_ASK_DETAIL.Add(_t_ASK_Detail); } - var _planList=db.TB_PO_PLAN.Where(p => _lst.Contains(p.UID)).ToList(); - _planList.ForEach(p => { + var _planList = db.TB_PO_PLAN.Where(p => _lst.Contains(p.UID)).ToList(); + _planList.ForEach(p => + { p.Extend2 = "F"; }); db.TB_PO_PLAN.AddOrUpdate(_planList.ToArray()); EntitiesFactory.SaveDb(db); } BackgroundWorker _sendMail = new BackgroundWorker(); - _sendMail.DoWork += (sender, e) => { + _sendMail.DoWork += (sender, e) => + { foreach (var itm in _vendList) { - SendMail(itm,"¿ɳɹ","ȥSCPϵͳ鿴¿",_first.Site); + SendMail(itm, "¿ɳɹ", "ȥSCPϵͳ鿴¿", _first.Site); } }; - _sendMail.RunWorkerCompleted += (sender,e) => { + _sendMail.RunWorkerCompleted += (sender, e) => + { Console.WriteLine($"ʼѷ!"); }; Console.WriteLine($"MRPӿݣ" + _ls.Count().ToString()); @@ -277,12 +280,12 @@ namespace CK.SCP.GrupUniApi.Controller catch (Exception e) { Console.WriteLine($"MRP{e.Message}"); - + } } } - + public static void SendMail(string p_VendId, string p_Content, string p_title, string p_site) { @@ -329,7 +332,7 @@ namespace CK.SCP.GrupUniApi.Controller } } - + /// ///ջ @@ -361,7 +364,7 @@ namespace CK.SCP.GrupUniApi.Controller int j = 0; foreach (var qadReceiveNbr in qadReceiveNbrList) { - + //qadRcvDetailListͬһxxqad_prh_receiverм¼ var qadDataList = qadRcvDetailList.Where(p => p.xxqad_prh_receiver == qadReceiveNbr).ToList(); if (qadDataList.Count == 0) @@ -382,15 +385,15 @@ namespace CK.SCP.GrupUniApi.Controller CreateUser = firstqadData.xxqad_prh_createur,//û IsDeleted = false, GUID = System.Guid.NewGuid(), - BillType = billtype, - Site= firstqadData.xxqad_prh_domain, - SubSite = firstqadData.xxqad_prh_site, - }; + BillType = billtype, + Site = firstqadData.xxqad_prh_domain, + SubSite = firstqadData.xxqad_prh_site, + }; } scpRcv.PoBillNum = firstqadData.xxqad_prh_po_nbr;//ɹ - // - // scpRcv.Site = firstqadData.xxqad_prh_domain;//ص - //scpRcv.SubSite = firstqadData.xxqad_prh_site; + // + // scpRcv.Site = firstqadData.xxqad_prh_domain;//ص + //scpRcv.SubSite = firstqadData.xxqad_prh_site; scpRcv.VendId = firstqadData.xxqad_prh_vend;// scpRcv.ShipTime = firstqadData.xxqad_prh_date_ship;//ջ scpRcv.RecvBillNum = firstqadData.xxqad_prh_psnbr; @@ -402,8 +405,8 @@ namespace CK.SCP.GrupUniApi.Controller { scpRcvList.Add(scpRcv); } - int i = 0; - scpRcv.Tax = firstqadData.xxqad_prh_taxc; + int i = 0; + scpRcv.Tax = firstqadData.xxqad_prh_taxc; foreach (var qadData in qadDataList) { try @@ -415,8 +418,8 @@ namespace CK.SCP.GrupUniApi.Controller p.PoBillNum == qadData.xxqad_prh_po_nbr && p.PoLine == poLineNum && p.PartCode == qadData.xxqad_prh_part && - p.Site==qadData.xxqad_prh_domain - && p.Qty>=0 + p.Site == qadData.xxqad_prh_domain + && p.Qty >= 0 ); if (scpRcvDetail == null) { @@ -445,7 +448,7 @@ namespace CK.SCP.GrupUniApi.Controller Rate = qadData.xxqad_prh_curr_rate != null ? qadData.xxqad_prh_curr_rate.Value : 1, Site = qadData.xxqad_prh_domain, Tax = firstqadData.xxqad_prh_taxc, - SubSite = qadData.xxqad_prh_site, + SubSite = qadData.xxqad_prh_site, }; } @@ -463,8 +466,8 @@ namespace CK.SCP.GrupUniApi.Controller p.ErpRecvBillNum == scpRcvDetail.ErpRecvBillNum && p.PoBillNum == scpRcvDetail.PoBillNum && p.PoLine == scpRcvDetail.PoLine && - p.PartCode == scpRcvDetail.PartCode&& - p.Site==scpRcvDetail.Site + p.PartCode == scpRcvDetail.PartCode && + p.Site == scpRcvDetail.Site ) == 0) { scpRcveDetailList.Add(scpRcvDetail); @@ -473,9 +476,9 @@ namespace CK.SCP.GrupUniApi.Controller qadData.xxqad_prh_scmread = ((int)UniApiState.ɹ).ToString(); } catch (Exception ex) - { + { qadData.xxqad_prh_scmread = ((int)UniApiState.ʧ).ToString(); - qadData.xxqad_prh_rmks += " SCM:" + ex.Message+i.ToString()+","+j.ToString(); + qadData.xxqad_prh_rmks += " SCM:" + ex.Message + i.ToString() + "," + j.ToString(); } qadData.xxqad_prh_updateur = ScpCache.Config.SCPû; qadData.xxqad_prh_updatedt = DateTime.Now; @@ -538,9 +541,9 @@ namespace CK.SCP.GrupUniApi.Controller IsDeleted = false, GUID = System.Guid.NewGuid(), BillType = billtype, - Site= firstqadData.xxqad_prh_domain, - SubSite = firstqadData.xxqad_prh_site, - }; + Site = firstqadData.xxqad_prh_domain, + SubSite = firstqadData.xxqad_prh_site, + }; } scpRcv.PoBillNum = firstqadData.xxqad_prh_po_nbr;//ɹ // //scpRcv.Site = firstqadData.xxqad_prh_domain;//ص @@ -561,7 +564,7 @@ namespace CK.SCP.GrupUniApi.Controller p.PoBillNum == qadData.xxqad_prh_po_nbr && p.PoLine == poLineNum && p.PartCode == qadData.xxqad_prh_part - && p.Site==qadData.xxqad_prh_domain + && p.Site == qadData.xxqad_prh_domain ); if (scpRcvDetail == null) @@ -591,10 +594,10 @@ namespace CK.SCP.GrupUniApi.Controller StdCost = qadData.xxqad_prh_std_cost != null ? qadData.xxqad_prh_std_cost.Value : 0, Rate = qadData.xxqad_prh_curr_rate != null ? qadData.xxqad_prh_curr_rate.Value : 1, Site = qadData.xxqad_prh_domain, - SubSite=qadData.xxqad_prh_site, + SubSite = qadData.xxqad_prh_site, Tax = firstqadData.xxqad_prh_taxc }; - + } scpRcvDetail.RecvBillNum = !string.IsNullOrEmpty(qadData.xxqad_prh_psnbr) ? qadData.xxqad_prh_psnbr : string.Empty; scpRcvDetail.PurCost = qadData.xxqad_prh_pur_cost; @@ -704,24 +707,24 @@ namespace CK.SCP.GrupUniApi.Controller " and a.xxqad_ppod_part=b.xxqad_ppod_part\n" + " and a.xxqad_ppod_rev=b.xxqad_ppod_rev"; _sql = string.Format(_sql, seq); - var _ppodList=idb.Database.SqlQuery(_sql).ToList(); + var _ppodList = idb.Database.SqlQuery(_sql).ToList(); List _list = new List(); try { - + foreach (var itm in _ppodList) { - var _plan=wdb.TB_PO_PLAN.Where(p => p.PoBillNum == itm.xxqad_ppod_nbr && p.PartCode == itm.xxqad_ppod_part && p.EndTime == itm.xxqad_ppod_due_date && p.Domain == itm.xxqad_ppod_domain && p.Site == itm.xxqad_ppod_site && p.Version == itm.xxqad_ppod_rev).FirstOrDefault(); - if(_plan!=null) + var _plan = wdb.TB_PO_PLAN.Where(p => p.PoBillNum == itm.xxqad_ppod_nbr && p.PartCode == itm.xxqad_ppod_part && p.EndTime == itm.xxqad_ppod_due_date && p.Domain == itm.xxqad_ppod_domain && p.Site == itm.xxqad_ppod_site && p.Version == itm.xxqad_ppod_rev).FirstOrDefault(); + if (_plan != null) { _plan.PlanQty = itm.xxqad_ppod_qty_ord.Value; continue; } - _plan = new TB_PO_PLAN(); + _plan = new TB_PO_PLAN(); _plan.PoBillNum = itm.xxqad_ppod_nbr; _plan.VendId = itm.xxqad_ppod_vend; _plan.IsDeleted = false;//Ա @@ -756,7 +759,7 @@ namespace CK.SCP.GrupUniApi.Controller List _ls = new List(); foreach (var itm in _list) { - var _count=_ls.Count(p => p.PoBillNum == itm.PoBillNum && p.PartCode == itm.PartCode && p.EndTime == itm.EndTime && p.Domain == p.Domain && p.Site == itm.Site && p.Version == itm.Version); + var _count = _ls.Count(p => p.PoBillNum == itm.PoBillNum && p.PartCode == itm.PartCode && p.EndTime == itm.EndTime && p.Domain == p.Domain && p.Site == itm.Site && p.Version == itm.Version); if (_count == 0) { _ls.Add(itm); @@ -768,8 +771,8 @@ namespace CK.SCP.GrupUniApi.Controller { throw e; } - - Console.WriteLine($"¿ݣ{_ppodList.Count}"); + + Console.WriteLine($"¿ݣ{_ppodList.Count}"); } /// @@ -778,137 +781,239 @@ namespace CK.SCP.GrupUniApi.Controller /// /// /// - private static void UpdatePurchaseOrders(UniApiEntities idb, ScpEntities wdb, string seq) - { - var _ls=wdb.TB_FACTORY.Select(p => p.FactoryId).ToList(); - // var qadPoDetailList = idb.xxqad_pod_det.Where(p => p.xxqad_pod_seq == seq).ToList(); ԭ xxqad_pod_modtype 1Ϊ󶩵 - var qadPoDetailList = idb.xxqad_pod_det.Where(p => p.xxqad_pod_seq == seq && p.xxqad_pod_scmread == "0").ToList(); - - var wmsPoList = new List(); - var wmsPoDetailList = new List(); - - var qadPoNbrList = qadPoDetailList.Select(p => p.xxqad_pod_nbr.ToUpper()).DistinctBy(p => p); - - foreach (var qadPoNbr in qadPoNbrList) + private static void UpdatePurchaseOrders(UniApiEntities idb, ScpEntities wdb, xxerp_MaxbatchNO item) + { + try { - var qadDataList = qadPoDetailList.Where(p => p.xxqad_pod_nbr == qadPoNbr).ToList(); - if (qadDataList.Count == 0) + var max = idb.xxDiMaxes_Po.OrderByDescending(r => r.Di_Batchno).FirstOrDefault(); + int a = max.Di_Batchno; + var FATCTORY = wdb.TB_FACTORY.FirstOrDefault(); + DataTable b = PoBillNumcontroller.GetInvBatchStock(a, FATCTORY.FactoryId); + List list = ChangKeTec.Utils.ListHelper.DataTableToList(b); + var wmsPoList = new List(); + var wmsPoDetailList = new List(); + var wmsAskList = new List(); + var wmsAskDetailList = new List(); + var xxMaxbath = new List(); + var Dlist = list.Where(p=>p.ctype=="D"); + var Ilist = list.Where(p => p.ctype != "D"); + var _li = Dlist.GroupBy(p=>p.purDocNO); + foreach (var _lii in _li) { - continue; + var _liii = _lii.ToList(); + var _entity = _liii.First(); + var _askdetail = wdb.TB_ASK_DETAIL.Count(p => p.PoBillNum == _entity.purDocNO && p.State > -1); + if(_askdetail== _liii.Count()) + { + var ask = wdb.TB_ASK.FirstOrDefault(p=>p.PoBillNum==_entity.purDocNO); + ask.State = -1; + ask.IsDeleted = true; + wmsAskList.Add(ask); + var askdetaill=wdb.TB_ASK_DETAIL.Where(p => p.PoBillNum == _entity.purDocNO).ToList(); + askdetaill.ForEach(p => + { + p.State = -1; + p.IsDeleted = true; + wmsAskDetailList.Add(p); + + }); + } + else + { + var askdetaill = wdb.TB_ASK_DETAIL.Where(p => p.PoBillNum == _entity.purDocNO).ToList(); + askdetaill.ForEach(p => + { + p.State = -1; + p.IsDeleted = true; + wmsAskDetailList.Add(p); + + }); + } } - var firstqadData = qadDataList[0]; - //var wmsPo = wdb.TF_PO.SingleOrDefault(p => p.ErpBillNum == qadPoNbr); - var wmsPo = wdb.TB_PO.SingleOrDefault(p => p.ErpBillNum == qadPoNbr ); - if (wmsPo == null) - { - int temp; - string strPoBillNum = SCP_BILLCODE_CONTROLLER.MakePOCode(); - wmsPo = new TB_PO - { - PoBillNum = qadPoNbr,// - ErpBillNum = firstqadData.xxqad_pod_prj,//ERP - VendId = firstqadData.xxqad_pod_vend.ToUpper(),//Ӧ̱ - ModType = Int32.TryParse(firstqadData.xxqad_pod_modtype, out temp) ? temp : (int?)null, //(1:ճ̵,2:ɢ) - Contacter = firstqadData.xxqad_pod_attn,//ϵ - Site = firstqadData.xxqad_pod_domain,//ص - State = (int)FormState.,//״̬ - CreateTime = firstqadData.xxqad_pod_createdt == null ? DateTime.Now : (DateTime)firstqadData.xxqad_pod_createdt,// - CreateUser = firstqadData.xxqad_pod_createur,//û - IsDeleted = false, - GUID = System.Guid.NewGuid(), - BeginTime = firstqadData.xxqad_pod_createdt==null ? DateTime.Now: (DateTime)firstqadData.xxqad_pod_createdt,// - EndTime = firstqadData.xxqad_pod_due_date//ջʱ - }; - wmsPoList.Add(wmsPo); - } - wmsPo.Contacter = firstqadData.xxqad_pod_attn; - wmsPo.Buyer = firstqadData.xxqad_pod_buyer; - wmsPo.BuyerPhone = firstqadData.xxqad_pod_buyer_phone; - wmsPo.UpdateTime = firstqadData.xxqad_pod_updatedt;// - wmsPo.UpdateUser = firstqadData.xxqad_pod_updateur;//û - wmsPo.SubSite = firstqadData.xxqad_pod_site; + foreach (var qadPoNbr in Ilist) + { + var qadDataList = wmsPoList.Count(p => p.PoBillNum == qadPoNbr.purDocNO); + var wmsPo1 = wdb.TB_PO.Count(p => p.PoBillNum == qadPoNbr.purDocNO); + if ( qadDataList == 0&& wmsPo1==0) + { + TB_PO wmsPo = new TB_PO + { + PoBillNum = qadPoNbr.purDocNO,// + ErpBillNum = qadPoNbr.purDocNO, + VendId = qadPoNbr.vendorNO,//Ӧ̱ + ModType = 2, + CreateUser = "W21-LIUST", + Site = "W21",//ص + State = (int)FormState.,//״̬ + CreateTime = qadPoNbr.createdDate == null ? DateTime.Now : (DateTime)qadPoNbr.createdDate,// + IsDeleted = false, + GUID = System.Guid.NewGuid(), + BeginTime = qadPoNbr.createdDate == null ? DateTime.Now : (DateTime)qadPoNbr.createdDate,// + EndTime = qadPoNbr.itemDeliveryDate,//ջʱ + Buyer = qadPoNbr.CREATEDBY, + BuyerPhone = "17304315968", + }; + + wmsPoList.Add(wmsPo); + } - foreach (var qadData in qadDataList) - { - try + var qadAskList = wmsAskList.Count(p => p.PoBillNum == qadPoNbr.purDocNO); + var wmsAs1 = wdb.TB_ASK.Count(p => p.PoBillNum == qadPoNbr.purDocNO); + if ( qadAskList == 0&& wmsAs1==0) { - var lineNum = Convert.ToInt32(qadData.xxqad_pod_line); - - var wmsPoDetail = - wdb.TB_PO_DETAIL.SingleOrDefault( - p => p.PoBillNum == qadPoNbr && p.PoLine == lineNum && p.Remark==qadData.xxqad_pod_domain); - if (wmsPoDetail == null) + + int cnt = 1; + String str = "k"; + TB_ASK wmsAs = new TB_ASK { - wmsPoDetail = new TB_PO_DETAIL - { - PoBillNum = qadPoNbr,// - PoLine = lineNum,// - IsDeleted = false, - GUID = System.Guid.NewGuid() - }; - wmsPoDetailList.Add(wmsPoDetail); - } - wmsPoDetail.PartCode = qadData.xxqad_pod_part.ToUpper();//-Ϻ - wmsPoDetail.PlanQty = qadData.xxqad_pod_qty_ord;//-ɹ - wmsPoDetail.BeginTime = firstqadData.xxqad_pod_createdt;//ջʼʱ - wmsPoDetail.EndTime = qadData.xxqad_pod_due_date;//ջʱ - wmsPoDetail.PoUnit = qadData.xxqad_pod_um;//ɹλ - wmsPoDetail.LocUnit = qadData.xxqad_pod_loc_um.ToUpper();//洢λ - wmsPoDetail.DockCode = qadData.xxqad_pod_loc; - wmsPoDetail.Price = ScpCache.Config.Ŀ == ProjectName.챱ģ.ToString()? 0: qadData.xxqad_pod_price; - wmsPoDetail.Currency = qadData.xxqad_pod_curr;// - wmsPoDetail.PackQty = qadData.xxqad_pod_qty_std;// - wmsPoDetail.UnConv = qadData.xxqad_pod_um_conv;//ת - wmsPoDetail.DockCode = qadData.xxqad_pod_loc; - wmsPoDetail.State = Convert.ToInt32(qadData.xxqad_pod_status);//״̬ - wmsPoDetail.Site = qadData.xxqad_pod_domain;//ע - wmsPoDetail.SubSite = qadData.xxqad_pod_site; - wmsPoDetail.CreateTime = firstqadData.xxqad_pod_createdt == null ? DateTime.Now : (DateTime)firstqadData.xxqad_pod_createdt;// - wmsPoDetail.CreateUser = firstqadData.xxqad_pod_createur;//û - wmsPoDetail.UpdateTime = firstqadData.xxqad_pod_updatedt;// - wmsPoDetail.UpdateUser = firstqadData.xxqad_pod_updateur;//û - //if (wmsPoDetail.BillQty != 0 && wmsPoDetail.BillQty <= wmsPoDetail.ReceivedQty) - // wmsPoDetail.State = (int)FormState.ر; + AskBillNum = str + qadPoNbr.purDocNO.Substring(2, 12), + PoBillNum = qadPoNbr.purDocNO,// + VendId = qadPoNbr.vendorNO,//Ӧ̱ + Site = "W21", + + CreateTime = qadPoNbr.createdDate == null ? DateTime.Now : (DateTime)qadPoNbr.createdDate,// + CreateUser = "W21-LIUST",//û + GUID = System.Guid.NewGuid(), + ModType = 2, + BeginTime = qadPoNbr.createdDate == null ? DateTime.Now : (DateTime)qadPoNbr.createdDate,// + EndTime = qadPoNbr.itemDeliveryDate,//ջʱ + Buyer = qadPoNbr.CREATEDBY, + BuyerPhone = "17304315968", + ErpBillNum = qadPoNbr.purDocNO,// + SubSite = "W21", + }; + if (qadPoNbr.returnsItem =="Y") + { + wmsAs.State = -1; + } + else + { + wmsAs.State = 1; + } + + wmsAskList.Add(wmsAs); - if (wmsPoDetail.PlanQty != 0 && wmsPoDetail.PlanQty <= wmsPoDetail.ReceivedQty) - wmsPoDetail.State = (int)FormState.ر; + } - qadData.xxqad_pod_scmread = ((int)UniApiState.ɹ).ToString(); + var qadASKList = wmsAskDetailList.Count(p => p.PoBillNum == qadPoNbr.purDocNO && p.PartCode == qadPoNbr.mtlNO); + var wmsAskDetail1 = wdb.TB_ASK_DETAIL.Count(p => p.PoBillNum == qadPoNbr.purDocNO && p.PartCode == qadPoNbr.mtlNO); + if (qadASKList == 0&& wmsAskDetail1==0) + { + String str = "k"; + TB_ASK_DETAIL wmsAskDetail = new TB_ASK_DETAIL + { + AskBillNum = str + qadPoNbr.purDocNO.Substring(2, 12), + PoBillNum = qadPoNbr.purDocNO,// + PoLine = int.Parse(qadPoNbr.purDocItemNO), + Site = "W21", + CreateTime = qadPoNbr.createdDate == null ? DateTime.Now : (DateTime)qadPoNbr.createdDate,// + CreateUser = "W21-LIUST",//û + GUID = System.Guid.NewGuid(), + PartCode = qadPoNbr.mtlNO.ToUpper(),//-Ϻ + BeginTime = qadPoNbr.createdDate == null ? DateTime.Now : (DateTime)qadPoNbr.createdDate,// + EndTime = qadPoNbr.itemDeliveryDate,//ջʱ + Price = 0, + AskQty = qadPoNbr.quantity, + DockCode = "YC", + PoUnit = qadPoNbr.baseUnitMeasure, + Currency = qadPoNbr.sizecoL, + }; + if (qadPoNbr.returnsItem == "Y") + { + wmsAskDetail.State = -1; + } + else + { + wmsAskDetail.State = 1; + } + wmsAskDetailList.Add(wmsAskDetail); } - catch (Exception ex) + + + var maxlist1 = new xxDiMaxes_Po { - qadData.xxqad_pod_scmread = ((int)UniApiState.ʧ).ToString(); - qadData.xxqad_pod_rmks += " SCM:" + ex.Message; - } - qadData.xxqad_pod_updateur = ScpCache.Config.SCPû; - qadData.xxqad_pod_updatedt = DateTime.Now; + Di_Batchno = qadPoNbr.DI_BATCHNO, + + }; + xxMaxbath.Add(maxlist1); + + var qadDataList1 = wmsPoDetailList.Count(p => p.PoBillNum == qadPoNbr.purDocNO && p.PartCode == qadPoNbr.mtlNO); + var wmsPoDetail1 = + wdb.TB_PO_DETAIL.Count(p => p.PoBillNum == qadPoNbr.purDocNO && p.PartCode == qadPoNbr.mtlNO); + if ( qadDataList1 == 0&& wmsPoDetail1==0) + { + + TB_PO_DETAIL wmsPoDetail = new TB_PO_DETAIL + { + PoBillNum = qadPoNbr.purDocNO,// + PoLine = int.Parse(qadPoNbr.purDocItemNO), + PartCode = qadPoNbr.mtlNO.ToUpper(),//-Ϻ + PlanQty = qadPoNbr.quantity,//-ɹ + BeginTime = qadPoNbr.createdDate == null ? DateTime.Now : (DateTime)qadPoNbr.createdDate,//ջʼʱ + EndTime = qadPoNbr.itemDeliveryDate,//ջʱ + PoUnit = qadPoNbr.baseUnitMeasure,//ɹλ + + Price = 0, + Site = "W21",//ע + SubSite = "W21", + CreateTime = qadPoNbr.createdDate == null ? DateTime.Now : (DateTime)qadPoNbr.createdDate,// + CreateUser = qadPoNbr.CREATEDBY,//û + //if (wmsPoDetail.BillQty != 0 && wmsPoDetail.BillQty <= wmsPoDetail.ReceivedQty) + // wmsPoDetail.State = (int)FormState.ر; + State = (int)FormState., + IsDeleted = false, + GUID = System.Guid.NewGuid(), + }; + wmsPoDetailList.Add(wmsPoDetail); + + // } + + + + } + //wmsPo.State = qadDataList.All(p => p.xxqad_pod_status == ((int)FormState.ر).ToString()) + // ? (int)FormState.ر + // : (int)FormState.; } - wmsPo.State = qadDataList.All(p => p.xxqad_pod_status == ((int)FormState.ر).ToString()) - ? (int)FormState.ر - : (int)FormState.; - } + if (wmsPoList.Count == 0) + { + Console.WriteLine(" ERPɹ :" + ""); + return; + } + + + item.Remark = ((int)UniApiState.ɹ).ToString(); + //item.MaxdibatchNO = item.MaxdibatchNO + list.Count; + idb.xxDiMaxes_Po.AddOrUpdate(xxMaxbath.ToArray()); wdb.TB_PO.AddOrUpdate(wmsPoList.ToArray()); + wdb.TB_ASK.AddOrUpdate(wmsAskList.ToArray()); wdb.TB_PO_DETAIL.AddOrUpdate(wmsPoDetailList.ToArray()); - Console.WriteLine($" ɹ ݣ{qadPoDetailList.Count}"); + wdb.TB_ASK_DETAIL.AddOrUpdate(wmsAskDetailList.ToArray()); + Console.WriteLine($" ɹ ݣ{list.Count}"); + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } } + - - private static void UpdatePurchaseOrders(UniApiEntities idb, ScpEntities wdb, string seq,string p_flag) + private static void UpdatePurchaseOrders(UniApiEntities idb, ScpEntities wdb, string seq, string p_flag) { var _ls = wdb.TB_FACTORY.Select(p => p.FactoryId).ToList(); var wmsPoList = new List(); var wmsPoDetailList = new List(); var _askList = new List(); var _askDetailList = new List(); - var qadPoDetailList = idb.xxqad_pod_det.Where(p => p.xxqad_pod_seq == seq && p.xxqad_pod_scmread == "0" ).ToList(); + var qadPoDetailList = idb.xxqad_pod_det.Where(p => p.xxqad_pod_seq == seq && p.xxqad_pod_scmread == "0").ToList(); List _lst = new List(); foreach (var itm in qadPoDetailList) { - var _cnt=_lst.Where(p => p.xxqad_pod_nbr == itm.xxqad_pod_nbr && p.xxqad_pod_domain == itm.xxqad_pod_domain).Count(); - if(_cnt==0) + var _cnt = _lst.Where(p => p.xxqad_pod_nbr == itm.xxqad_pod_nbr && p.xxqad_pod_domain == itm.xxqad_pod_domain).Count(); + if (_cnt == 0) { _lst.Add(itm); } @@ -916,8 +1021,8 @@ namespace CK.SCP.GrupUniApi.Controller foreach (var po in _lst) { var firstqadData = po; - var qadDataList = qadPoDetailList.Where(p => p.xxqad_pod_nbr == po.xxqad_pod_nbr && p.xxqad_pod_domain==po.xxqad_pod_domain).ToList(); - var wmsPo = wdb.TB_PO.SingleOrDefault(p => p.PoBillNum== po.xxqad_pod_nbr && p.Site==po.xxqad_pod_domain); + var qadDataList = qadPoDetailList.Where(p => p.xxqad_pod_nbr == po.xxqad_pod_nbr && p.xxqad_pod_domain == po.xxqad_pod_domain).ToList(); + var wmsPo = wdb.TB_PO.SingleOrDefault(p => p.PoBillNum == po.xxqad_pod_nbr && p.Site == po.xxqad_pod_domain); if (wmsPo == null) { int temp; @@ -929,7 +1034,7 @@ namespace CK.SCP.GrupUniApi.Controller ModType = Int32.TryParse(firstqadData.xxqad_pod_modtype, out temp) ? temp : (int?)null, //(1:ճ̵,2:ɢ) Contacter = firstqadData.xxqad_pod_attn,//ϵ Site = firstqadData.xxqad_pod_domain,//ص - SubSite=firstqadData.xxqad_pod_site, + SubSite = firstqadData.xxqad_pod_site, State = (int)FormState.,//״̬ CreateTime = firstqadData.xxqad_pod_createdt == null ? DateTime.Now : (DateTime)firstqadData.xxqad_pod_createdt,// CreateUser = firstqadData.xxqad_pod_createur,//û @@ -955,7 +1060,7 @@ namespace CK.SCP.GrupUniApi.Controller var lineNum = Convert.ToInt32(qadData.xxqad_pod_line); var wmsPoDetail = wdb.TB_PO_DETAIL.SingleOrDefault( - p => p.PoBillNum == qadData.xxqad_pod_nbr && p.PoLine == lineNum && p.Site== qadData.xxqad_pod_domain); + p => p.PoBillNum == qadData.xxqad_pod_nbr && p.PoLine == lineNum && p.Site == qadData.xxqad_pod_domain); if (wmsPoDetail == null) { wmsPoDetail = new TB_PO_DETAIL @@ -1000,9 +1105,9 @@ namespace CK.SCP.GrupUniApi.Controller qadData.xxqad_pod_updateur = ScpCache.Config.SCPû; qadData.xxqad_pod_updatedt = DateTime.Now; } - if(firstqadData.xxqad_pod_modtype=="2") + if (firstqadData.xxqad_pod_modtype == "2") { - if(firstqadData.xxqad_pod_domain=="CNH") + if (firstqadData.xxqad_pod_domain == "CNH") { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) @@ -1024,7 +1129,7 @@ namespace CK.SCP.GrupUniApi.Controller VendId = firstqadData.xxqad_pod_vend.ToUpper(),//Ӧ̱ Buyer = firstqadData.xxqad_pod_attn,//ϵ Site = firstqadData.xxqad_pod_domain,//ص - SubSite=firstqadData.xxqad_pod_site, + SubSite = firstqadData.xxqad_pod_site, State = (int)AskState.New,//״̬ CreateTime = firstqadData.xxqad_pod_createdt == null ? DateTime.Now : (DateTime)firstqadData.xxqad_pod_createdt,// CreateUser = firstqadData.xxqad_pod_buyer,//û @@ -1110,7 +1215,7 @@ namespace CK.SCP.GrupUniApi.Controller } } - + } } wdb.TB_PO.AddOrUpdate(wmsPoList.ToArray()); @@ -1121,31 +1226,112 @@ namespace CK.SCP.GrupUniApi.Controller /// - /// ²ɹ + /// ¾ + /// + /// + /// + /// + private static void UpdatePrice1(UniApiEntities idb, ScpEntities scpdb, xxerp_MaxbatchNO item) + { + var max = idb.xxDiMaxes.OrderByDescending(r => r.Di_Batchno_NETprice).FirstOrDefault(); + int a = max.Di_Batchno_NETprice; + var FATCTORY = scpdb.TB_FACTORY.FirstOrDefault(); + DataTable b = NetPriceController.GetInvBatchNetPrice(a, FATCTORY.FactoryId); + //DataTable b = NetPriceController.GetInvBatchNetPrice(item.MaxdibatchNO); + List list = ChangKeTec.Utils.ListHelper.DataTableToList(b); + + var PriceList = new List(); + var xxMaxbath = new List(); + foreach (var itm in list) + { + var maxlist1 = new xxDiMaxes + { + Di_Batchno_part = 0, + Di_Batchno=0, + Di_Batchno_price=0, + Di_Batchno_NETprice = itm.DI_BATCHNO, + + }; + xxMaxbath.Add(maxlist1); + var _part = scpdb.TB_NetPrice.Count(p => p.PartCode == itm.MTLNO.ToUpper() && p.VendId == itm.vendorNO + && p.StartTime == itm.validityStartPeriod && p.EndTime == itm.validityEndPeriod); + if (_part == 0) + { + var _price = new TB_NetPrice + { + VendId = itm.vendorNO, + Remarks = itm.purOrg, + PartCode = itm.MTLNO, + Site = itm.plant, + StartTime = itm.validityStartPeriod, + EndTime = itm.validityEndPeriod, + }; + _price.Amt = itm.netPrice; + PriceList.Add(_price); + } + } + if (PriceList.Count == 0) + { + Console.WriteLine(" :" + ""); + return; + } + idb.xxDiMaxes.AddOrUpdate(xxMaxbath.ToArray()); + item.MaxdibatchNO = item.MaxdibatchNO + list.Count; + item.Remark = ((int) UniApiState.ʧ).ToString(); + scpdb.TB_NetPrice.AddOrUpdate(PriceList.ToArray()); + Console.WriteLine($"²ɹݣ{PriceList.Count}"); + } + /// + /// ¼۸ /// /// /// /// - private static void UpdatePrice(UniApiEntities idb, ScpEntities scpdb, string seq) + private static void UpdatePrice(UniApiEntities idb, ScpEntities scpdb, xxerp_MaxbatchNO item) { - var _list = idb.xxqad_pprice_det.Where(p => p.xxqad_pprice_seq == seq && p.xxqad_pprice_scmread == "0").ToList(); + var max = idb.xxDiMaxes.OrderByDescending(r => r.Di_Batchno_NETprice).FirstOrDefault(); + int a = max.Di_Batchno_price; + var FATCTORY = scpdb.TB_FACTORY.FirstOrDefault(); + DataTable b = PriceController.GetInvBatchPrice(a,FATCTORY.FactoryId); + List list = ChangKeTec.Utils.ListHelper.DataTableToList(b); + var xxMaxbath = new List(); var PriceList = new List(); - foreach (var itm in _list) + foreach (var itm in list) { - var _price= new TB_PRICE + var maxlist1 = new xxDiMaxes { - VendId = itm.xxqad_pprice_list, - Unit = itm.xxqad_pprice_um, - PartCode = itm.xxqad_pprice_part, - Site = itm.xxqad_pprice_domain, - Remarks = itm.xxqad_pprice_rmks, - StartTime = itm.xxqad_pprice_start, - EndTime = itm.xxqad_pprice_end, - Curr = itm.xxqad_pprice_curr + Di_Batchno_part = 0, + Di_Batchno = 0, + Di_Batchno_price = itm.DI_BATCHNO, + Di_Batchno_NETprice =0, + }; - _price.Amt = itm.xxqad_pprice_amt; - PriceList.Add(_price); + xxMaxbath.Add(maxlist1); + var _part = scpdb.TB_PRICE.Count(p => p.PartCode == itm.MTLNO.ToUpper() && p.VendId == itm.vendorNO + && p.StartTime == itm.validityStartPeriod && p.EndTime == itm.validityEndPeriod); + if (_part == 0) + { + var _price = new TB_PRICE + { + VendId = itm.vendorNO, + Unit = itm.ordUnit, + PartCode = itm.MTLNO, + Site = itm.plant, + StartTime =itm.validityStartPeriod, + EndTime = itm.validityEndPeriod, + }; + _price.Amt = decimal.Parse(itm.purchasePrice); + PriceList.Add(_price); + } + } + if (PriceList.Count == 0) + { + Console.WriteLine(" ɹ۸ :" + ""); + return; } + idb.xxDiMaxes.AddOrUpdate(xxMaxbath.ToArray()); + item.MaxdibatchNO = item.MaxdibatchNO + list.Count; + //item.Remark = ((int)UniApiState.ʧ).ToString(); scpdb.TB_PRICE.AddOrUpdate(PriceList.ToArray()); Console.WriteLine($"²ɹ۸ݣ{PriceList.Count}"); } @@ -1155,53 +1341,55 @@ namespace CK.SCP.GrupUniApi.Controller /// /// /// - private static void UpdateVendParts(UniApiEntities idb, ScpEntities wdb, string seq) + private static void UpdateVendParts(UniApiEntities idb, ScpEntities wdb,xxerp_MaxbatchNO item) { - var qadDataList = idb.xxqad_vp_mstr.Where(p => p.xxqad_vp_seq == seq ).ToList(); + DataTable b = vendidpartcontroller.GetInvBatchStock(item.MaxdibatchNO.ToString()); + List list = ChangKeTec.Utils.ListHelper.DataTableToList(b); var wmsDataList = new List(); - foreach (var qadData in qadDataList) + foreach (var qadData in list) { try { - if (string.IsNullOrEmpty(qadData.xxqad_vp_vend_part)) - qadData.xxqad_vp_vend_part = qadData.xxqad_vp_part; + if (string.IsNullOrEmpty(qadData.MTLNO)) + qadData.MTLNO = qadData.MTLNO; var wmsData = wdb.TA_VEND_PART.SingleOrDefault( - p => p.VendId == qadData.xxqad_vp_addr.ToUpper() - && p.PartCode == qadData.xxqad_vp_part.ToUpper() - && p.Site==qadData.xxqad_vp_domain + p => p.VendId == qadData.VENDORNO.ToUpper() + && p.PartCode == qadData.MTLNO.ToUpper() + && p.Site == qadData.PLANT ) ?? new TA_VEND_PART { - VendId = qadData.xxqad_vp_addr.ToUpper(),//Ӧ̱ - PartCode = qadData.xxqad_vp_part.ToUpper(),//ӦϺ - VendPartCode = qadData.xxqad_vp_vend_part.ToUpper(),//ӦϺ - VendPackQty = qadData.xxqad_vp_comment,//ӦϺ + VendId = qadData.VENDORNO.ToUpper(),//Ӧ̱ + PartCode = qadData.MTLNO.ToUpper(),//ӦϺ + //VendPartCode = qadData.xxqad_vp_vend_part.ToUpper(),//ӦϺ + //VendPackQty = qadData.xxqad_vp_comment,//ӦϺ //PoUnit = qadData.,//ɹλ State = 1,//״̬0ʧЧ 1:Ч Remark = "", - CreateTime = qadData.xxqad_vp_createdt == null ? DateTime.Now : (DateTime)qadData.xxqad_vp_createdt,// - CreateUser = qadData.xxqad_vp_createur,//û - UpdateTime = qadData.xxqad_vp_updatedt,// - UpdateUser = qadData.xxqad_vp_updateur,//û - TransportationTime=qadData.xxqad_vp_vend_lead, + CreateTime = qadData.created == null ? DateTime.Now : DateTime.Parse(qadData.created),// + CreateUser = qadData.createdBy,//û + UpdateTime = DateTime.Now,// + //UpdateUser = qadData.xxqad_vp_updateur,//û + //TransportationTime = qadData.memo, IsDeleted = false, GUID = new Guid() - }; - wmsData.Site = string.IsNullOrEmpty(wmsData.Site) ? qadData.xxqad_vp_domain : wmsData.Site; - wmsData.VendPartCode = qadData.xxqad_vp_vend_part?.ToUpper() ?? qadData.xxqad_vp_part.ToUpper(); - wmsData.VendPackQty = qadData.xxqad_vp_comment; - wmsData.TransportationTime = qadData.xxqad_vp_vend_lead; + }; + wmsData.Site = string.IsNullOrEmpty(wmsData.Site) ? qadData.PLANT : wmsData.Site; + // wmsData.VendPartCode = qadData.xxqad_vp_vend_part?.ToUpper() ?? qadData.ToUpper.ToUpper(); + //wmsData.VendPackQty = qadData.xxqad_vp_comment; + //wmsData.TransportationTime = qadData.xxqad_vp_vend_lead; wmsDataList.Add(wmsData); - qadData.xxqad_vp_scmread = ((int)UniApiState.ɹ).ToString(); + item.Remark = ((int)UniApiState.ɹ).ToString(); + item.MaxdibatchNO = Convert.ToInt32(qadData.DI_BATCHNO); } catch (Exception ex) { - qadData.xxqad_vp_scmread = ((int)UniApiState.ʧ).ToString(); - qadData.xxqad_vp_rmks += " SCM:" + ex.Message; + item.Remark = ((int)UniApiState.ʧ).ToString(); + //qadData.xxqad_vp_rmks += " SCM:" + ex.Message; } - qadData.xxqad_vp_updateur = ScpCache.Config.SCPû; - qadData.xxqad_vp_updatedt = DateTime.Now; + //qadData.xxqad_vp_updateur = ScpCache.Config.SCPû; + //qadData.xxqad_vp_updatedt = DateTime.Now; } wdb.TA_VEND_PART.AddOrUpdate(wmsDataList.ToArray()); Console.WriteLine($" Ӧ ݣ{wmsDataList.Count}"); @@ -1213,51 +1401,60 @@ namespace CK.SCP.GrupUniApi.Controller /// /// /// - private static void UpdateVender(List qadDataList, ScpEntities wdb,AppBoxContext authdb, string seq) + private static void UpdateVender(UniApiEntities idb, ScpEntities wdb, AppBoxContext authdb, xxerp_MaxbatchNO item) { - + var max = idb.xxDiMaxes.OrderByDescending(r => r.Di_Batchno).FirstOrDefault(); + int a = max.Di_Batchno; + var FATCTORY = wdb.TB_FACTORY.FirstOrDefault(); + DataTable b = Vendercontroller.GetInvBatchStock(item.MaxdibatchNO, a,FATCTORY.FactoryId); + //DataTable b = Vendercontroller.GetInvBatchStock(item.MaxdibatchNO); + List list = ChangKeTec.Utils.ListHelper.DataTableToList(b); var wmsDataList = new List(); - - foreach (var qadData in qadDataList) + var xxMaxbath = new List(); + foreach (var qadData in list) { try { - var wmsData = wdb.TA_VENDER.SingleOrDefault(p => p.VendId == qadData.xxqad_vd_addr.ToUpper() && p.Site==qadData.xxqad_vd_domain) ?? - new TA_VENDER { VendId = qadData.xxqad_vd_addr.ToUpper(), VendAbbCode = "0", State = 1 }; - wmsData.VendName = string.IsNullOrEmpty(qadData.xxqad_vd_name)?qadData.xxqad_vd_addr:qadData.xxqad_vd_name; - wmsData.VendType = qadData.xxqad_vd_type.ToUpper().ToString(); - wmsData.Country = qadData.xxqad_vd_country; - wmsData.City = qadData.xxqad_vd_city; - wmsData.Currency = qadData.xxqad_vd_curr.ToUpper(); - wmsData.Address = qadData.xxqad_vd_line1 + qadData.xxqad_vd_line2 + qadData.xxqad_vd_line3; - wmsData.ZipCode = qadData.xxqad_vd_pst_id; - wmsData.Contacter = qadData.xxqad_vd_attn; - wmsData.Phone = qadData.xxqad_vd_phone; - wmsData.Fax = qadData.xxqad_vd_fax; - wmsData.Site = string.IsNullOrEmpty(wmsData.Site)? qadData.xxqad_vd_domain:wmsData.Site; - wmsData.Tax = qadData.xxqad_vd_tax;//˰ + var maxlist1 = new xxDiMaxes + { + Di_Batchno_NETprice=0, + Di_Batchno_price=0, + Di_Batchno_part = 0, + Di_Batchno = qadData.DI_BATCHNO, + + }; + xxMaxbath.Add(maxlist1); + var wmsData = wdb.TA_VENDER.FirstOrDefault(p => p.VendId == qadData.VENDORNO.ToUpper() && p.Site == ScpCache.Config.QAD) ?? + new TA_VENDER { VendId = qadData.VENDORNO.ToUpper(), VendAbbCode = "0", State = 1 }; + wmsData.VendName = string.IsNullOrEmpty(qadData.NAME1) ? qadData.VENDORNO : qadData.NAME1; + wmsData.VendType = qadData.providerType.ToUpper().ToString(); + wmsData.Country = qadData.country; + wmsData.Phone = qadData.firstTelNO; + wmsData.Fax = qadData.FAXNUMBER; + wmsData.Site = ScpCache.Config.QAD; wmsDataList.Add(wmsData); - qadData.xxqad_vd_scmread = ((int)UniApiState.ɹ).ToString(); - var vendname=string.Format("{0}@{1}", qadData.xxqad_vd_addr.ToUpper(), qadData.xxqad_vd_domain.ToUpper()); - var _first=authdb.Users.Where(p => p.Name == vendname).FirstOrDefault(); - var _vend=authdb.Roles.Where(p => p.Name == "Ӧ").FirstOrDefault(); - var _factory = authdb.TA_FACTORY.Where(p => p.ErpDomain == qadData.xxqad_vd_domain.ToUpper()).FirstOrDefault(); - if (_first==null && _vend!=null && _factory!=null) + item.Remark = ((int)UniApiState.ɹ).ToString(); + // item.MaxdibatchNO = Convert.ToInt32(qadData.DI_BATCHNO); + var vendname = string.Format("{0}@{1}", qadData.VENDORNO.ToUpper(), ScpCache.Config.QAD); + var _first = authdb.Users.Where(p => p.Name == vendname).FirstOrDefault(); + var _vend = authdb.Roles.Where(p => p.Name == "Ӧ").FirstOrDefault(); + var _factory = authdb.TA_FACTORY.Where(p => p.ErpDomain == ScpCache.Config.QAD).FirstOrDefault(); + //_first == null && _vend != null && + if (_factory != null&& _first==null) { User _entity = new User(); _entity.Name = vendname; - _entity.Remark = qadData.xxqad_vd_domain.ToUpper(); + _entity.Remark = qadData.COMMUADDRESS.ToUpper(); _entity.Password = PasswordUtil.CreateDbPassword("555555"); - _entity.ChineseName = wmsData.VendName; _entity.Email = wmsData.VendId + "@163.com"; _entity.Gender = ""; _entity.Enabled = true; _entity.Roles = new List(); - + authdb.Users.Add(_entity); Role t = authdb.Set().Local.Where(x => x.ID == _vend.ID).FirstOrDefault(); if (t == null) { - t = new Role { ID =_vend.ID }; + t = new Role { ID = _vend.ID }; authdb.Set().Attach(t); } _entity.Roles.Add(t); @@ -1265,62 +1462,76 @@ namespace CK.SCP.GrupUniApi.Controller TA_FACTORY f = authdb.Set().Local.Where(x => x.ID == _factory.ID).FirstOrDefault(); if (f == null) { - f = new TA_FACTORY { ID = _factory.ID }; + f = new TA_FACTORY { ID = _factory.ID }; authdb.Set().Attach(f); } _entity.TA_FACTORY.Add(f); - authdb.Users.Add(_entity); - } + item.Remark = ((int)UniApiState.ɹ).ToString(); + //} + } } catch (Exception ex) { - qadData.xxqad_vd_scmread = ((int)UniApiState.ʧ).ToString(); - qadData.xxqad_vd_rmks += " SCM:" + ex.Message; + item.Remark = ((int)UniApiState.ʧ).ToString(); + } - qadData.xxqad_vd_updateur = ScpCache.Config.SCPû; - qadData.xxqad_vd_updatedt = DateTime.Now; + //qadData.xxqad_vd_updateur = ScpCache.Config.SCPû; + //qadData.xxqad_vd_updatedt = DateTime.Now; } if (wmsDataList.Count == 0) { - Console.WriteLine(" Ӧ :"+ seq+""); + Console.WriteLine(" Ӧ :" + ""); return; } - wdb.TA_VENDER.AddOrUpdate(p=>new {p.VendId,p.Site } ,wmsDataList.ToArray()); - Console.WriteLine($" Ӧ ݣ{qadDataList.Count}"); + wdb.TA_VENDER.AddOrUpdate(p => new { p.VendId, p.Site }, wmsDataList.ToArray()); + idb.xxDiMaxes.AddOrUpdate(xxMaxbath.ToArray()); + item.MaxdibatchNO = item.MaxdibatchNO +list.Count; + Console.WriteLine($" Ӧ ݣ{list.Count}"); + } + public static DataTable GetInvBatchStock() + { + + string Sql = $"Select * form MMRSendMtlData"; + + var dt_Part = DBControllerByOracle.GetDataTable(Sql); - private static void UpdateVenderExtend(List qadDataList, ScpEntities wdb, AppBoxContext authdb) + return dt_Part; + } + + private static void UpdateVenderExtend(UniApiEntities idb, ScpEntities wdb, AppBoxContext authdb, List qadDataList) { - - var _ls= new List(); + + var _ls = new List(); foreach (var qadData in qadDataList) { try { - var vendname = string.Format("{0}@{1}", qadData.xxqad_vd_addr.ToUpper(), qadData.xxqad_vd_domain.ToUpper()); - var _first= authdb.Users.Where(p => p.Name == vendname).FirstOrDefault(); + var vendname = string.Format("{0}@{1}", qadData.VendId.ToUpper(), ScpCache.Config.QAD); + var _first = authdb.Users.Where(p => p.Name == vendname).FirstOrDefault(); if (_first != null) { - - var _ef= authdb.VenderUsers.FirstOrDefault(p => p.VenderId == qadData.xxqad_vd_addr && p.UserId == _first.ID)??new VenderUsers() - { - UserId=_first.ID, - VenderId=qadData.xxqad_vd_addr.ToUpper() - }; + + var _ef = authdb.VenderUsers.FirstOrDefault(p => p.VenderId == qadData.VendId && p.UserId == _first.ID) ?? new VenderUsers() + { + UserId = _first.ID, + VenderId = qadData.VendId.ToUpper() + }; _ls.Add(_ef); } + } - catch + catch { - + } - + } authdb.VenderUsers.AddOrUpdate(_ls.ToArray()); @@ -1342,42 +1553,60 @@ namespace CK.SCP.GrupUniApi.Controller /// /// /// - private static void UpdateParts(UniApiEntities idb, ScpEntities wdb, string seq) + private static void UpdateParts(UniApiEntities idb, ScpEntities wdb, xxerp_MaxbatchNO item ) { - var qadDataList = idb.xxqad_pt_mstr.Where(p => p.xxqad_pt_seq == seq ).ToList(); - var wmsDataList = new List(); - foreach (var qadData in qadDataList) + var max = idb.xxDiMaxes.OrderByDescending(r => r.Di_Batchno_part).FirstOrDefault(); + int a = max.Di_Batchno_part; + var FATCTORY = wdb.TB_FACTORY.FirstOrDefault(); + DataTable b = QmStockController.GetInvBatchStock(item.MaxdibatchNO,a, FATCTORY.FactoryId); + List list= ChangKeTec.Utils.ListHelper.DataTableToList(b); + + var wmsDataList = new List(); + var xxMaxbath = new List(); + foreach (var qadData in list) { - try + var maxlist1 = new xxDiMaxes { - var wmsData = wdb.TA_PART.SingleOrDefault(p => p.ErpPartCode == qadData.xxqad_pt_part.ToUpper() && p.Site==qadData.xxqad_pt_domain) ?? + Di_Batchno_NETprice=0, + Di_Batchno_price=0, + Di_Batchno_part = qadData.DI_BATCHNO, + Di_Batchno = 0 + + }; + xxMaxbath.Add(maxlist1); + var wmsData = wdb.TA_PART.SingleOrDefault(p => p.ErpPartCode == qadData.MTLNO.ToString() && p.Site == qadData.plant) ?? new TA_PART { - PartCode = qadData.xxqad_pt_part.ToUpper(), - ErpPartCode = qadData.xxqad_pt_part.ToUpper(), - }; - wmsData.PartDesc1 = qadData.xxqad_pt_desc1; - wmsData.PartDesc2 = qadData.xxqad_pt_desc2; - wmsData.ProjectId = qadData.xxqad_pt_group.ToUpper(); - wmsData.Unit = !string.IsNullOrEmpty(qadData.xxqad_pt_um)? qadData.xxqad_pt_um.ToUpper():"EA"; - wmsData.PartGroup = qadData.xxqad_pt_dsgn_grp.ToUpper(); - wmsData.State = qadData.xxqad_pt_status.ToUpper(); - wmsData.Site = qadData.xxqad_pt_domain; - - wmsDataList.Add(wmsData); - qadData.xxqad_pt_scmread = ((int)UniApiState.ɹ).ToString(); - } - catch (Exception ex) - { - qadData.xxqad_pt_scmread = ((int)UniApiState.ʧ).ToString(); - qadData.xxqad_pt_rmks += " SCM:" + ex.Message; - } - qadData.xxqad_pt_updateur = ScpCache.Config.SCPû; - qadData.xxqad_pt_updatedt = DateTime.Now; + PartCode = qadData.MTLNO.ToString(), + ErpPartCode = qadData.MTLNO.ToString(), + }; + wmsData.PartDesc1 = qadData.MTLNODES.ToString(); + wmsData.PartDesc2 = qadData.sizes.ToString(); + wmsData.ReceivePort = qadData.grossWeight.ToString(); + wmsData.PalletSize = qadData.netWeight.ToString(); + wmsData.PartGroup = qadData.MTLTYPE.ToString(); + wmsData.ProjectId = qadData.MATBRAND; + wmsData.Unit = !string.IsNullOrEmpty(qadData.MEASUREBASEUNIT) ? qadData.MEASUREBASEUNIT.ToUpper() : "EA"; + wmsData.Remark = qadData.stdPrice.ToString(); + wmsData.ValidityDays = qadData.loadQuantity; + wmsData.State = !string.IsNullOrEmpty(qadData.SpMtlStatus) ? qadData.SpMtlStatus.ToUpper() : "A"; + wmsData.Site = qadData.plant; + wmsDataList.Add(wmsData); + } + + if (wmsDataList.Count == 0) + { + Console.WriteLine(" :" + ""); + return; } - wdb.TA_PART.AddOrUpdate(p =>new { p.PartCode, p.Site }, wmsDataList.ToArray()); - Console.WriteLine($" Ϣ ݣ{qadDataList.Count}"); + item.Remark = ((int)UniApiState.ɹ).ToString(); + item.MaxdibatchNO = item.MaxdibatchNO + list.Count; + idb.xxDiMaxes.AddOrUpdate(xxMaxbath.ToArray()); + wdb.TA_PART.AddOrUpdate(p => new { p.PartCode, p.Site }, wmsDataList.ToArray()); + Console.WriteLine($" Ϣ ݣ{list.Count}"); } } -} + + + } diff --git a/UniApiGroup/Controller/OdbcApiScpController.cs b/UniApiGroup/Controller/OdbcApiScpController.cs index f0a79e7..0bb50b2 100644 --- a/UniApiGroup/Controller/OdbcApiScpController.cs +++ b/UniApiGroup/Controller/OdbcApiScpController.cs @@ -17,10 +17,10 @@ namespace CK.SCP.GrupUniApi.Controller { return pre + "_" + DateTime.Now.ToString(ScpCache.Config.SCP接口数据流水号格式); } - private static void PutScpCtrl(UniApiEntities idb, string seq, string tableName, int rowCount,string p_domain,string p_site) + private static void PutScpCtrl(UniApiEntities idb, string seq, string tableName, int rowCount, string p_domain, string p_site) { - + var wmsCtrl = new xxscm_ctrl { @@ -32,8 +32,8 @@ namespace CK.SCP.GrupUniApi.Controller xxscm_scm = ((int)UniApiState.待执行).ToString(), xxscm_wms = ((int)UniApiState.待执行).ToString(), xxscm_rmks = "", - xxscm_domain =p_domain, - xxscm_site = (!string.IsNullOrEmpty(p_site))?p_site: p_domain, + xxscm_domain = p_domain, + xxscm_site = (!string.IsNullOrEmpty(p_site)) ? p_site : p_domain, //xxscm_create_time = DateTime.Now, }; idb.xxscm_ctrl.Add(wmsCtrl); @@ -46,15 +46,16 @@ namespace CK.SCP.GrupUniApi.Controller foreach (string billNum in billNumList) { var list = dataList.Where(p => p.BillNum == billNum).ToList(); - //if (GlobalVar.ApiConfig.Scm采购订单) - // PutScmPo(idb, - // list.Where(p => p.InterfaceType == UniApiType.PO.ToString()).ToList()); + if (GlobalVar.ApiConfig.Scm采购订单) + PutScmPo(idb, list.Where(p => p.InterfaceType == UniApiType.Pobillnum.ToString()).ToList()); + if (GlobalVar.ApiConfig.Scm大订单) + PutScmMaxPo(idb, list.Where(p => p.InterfaceType == UniApiType.MaxPobillnum.ToString()).ToList()); if (GlobalVar.ApiConfig.Scm发货单) PutScmAsn(idb, list.Where(p => p.InterfaceType == UniApiType.Receive.ToString()).ToList()); //if (GlobalVar.ApiConfig.Scm条码明细) // PutScmBarcode(idb, list.Where(p => p.InterfaceType == UniApiType.BarCode.ToString()).ToList()); - if (GlobalVar.ApiConfig.Scm发票) - PutScmInvoice(idb, list.Where(p => p.InterfaceType == UniApiType.Invoice.ToString()).ToList()); + //if (GlobalVar.ApiConfig.Scm发票) + // PutScmInvoice(idb, list.Where(p => p.InterfaceType == UniApiType.Invoice.ToString()).ToList()); Thread.Sleep(10); } } @@ -71,16 +72,37 @@ namespace CK.SCP.GrupUniApi.Controller string seq = string.Empty; if (dataList.Count > 0) { - seq = CreateSeq(string.IsNullOrEmpty(uni_api.Domain)?uni_api.Site:uni_api.Domain); + seq = CreateSeq(string.IsNullOrEmpty(uni_api.Domain) ? uni_api.Site : uni_api.Domain); } - - - - - - var tableName = ScmTableName.xxscm_tx_mstr.ToString(); var qadDataList = new List(); + var qadDataList1 = new List(); + foreach (var erpData in dataList) + { + + var qadData1 = qadDataList1.FirstOrDefault(p => p.PURDOCNO == erpData.ErpBillNum + && p.purDocLineNO == erpData.ErpLineNum.ToString() + ); + + if (qadData1 == null) + { + + qadData1 = new PURReplenishQties + { + PURDOCNO = erpData.ErpBillNum, + purDocLineNO = erpData.Extend3, + replenishQty = erpData.PackQty, + client = "800", + plant = erpData.Site + + }; + //PutScpCtrl(idb, qadData.xxscm_tx_seq, tableName,1,wmsData.Domain,wmsData.Site ); + qadDataList1.Add(qadData1); + } + erpData.State = (int)BillState.Finish; + erpData.PutTime = DateTime.Now; + + } foreach (var wmsData in dataList) { if (wmsData.Domain == "BJCIAI") @@ -90,14 +112,15 @@ namespace CK.SCP.GrupUniApi.Controller } var qadData = qadDataList.SingleOrDefault(p => p.xxscm_tx_nbr == wmsData.BillNum && p.xxscm_tx_domain == wmsData.Site - && p.xxscm_tx_part == wmsData.PartCode && p.xxscm_tx_batch==wmsData.Batch && p.xxscm_tx_vend_batch== wmsData.VendBatch); + && p.xxscm_tx_part == wmsData.PartCode && p.xxscm_tx_batch == wmsData.Batch && p.xxscm_tx_vend_batch == wmsData.VendBatch + &&p.xxscm_tx_po_line == wmsData.ErpLineNum.ToString()); if (qadData == null) { qadData = new xxscm_tx_mstr { xxscm_tx_seq = seq, xxscm_tx_nbr = wmsData.BillNum, - + xxscm_tx_part = wmsData.PartCode, xxscm_tx_qadread = ((int)UniApiState.待执行).ToString(), xxscm_tx_wmsread = ((int)UniApiState.待执行).ToString(), @@ -113,7 +136,7 @@ namespace CK.SCP.GrupUniApi.Controller xxscm_tx_po_line = wmsData.ErpLineNum.ToString(), xxscm_tx_conv = wmsData.UmConv, xxscm_tx_date_Promise = wmsData.ValidDate, - xxscm_tx_date_due = wmsData.ValidDate, + xxscm_tx_date_due = wmsData.CreateTime, xxscm_tx_date_ship = wmsData.CreateTime, xxscm_tx_loc_um = wmsData.LocUnit == null ? "" : wmsData.LocUnit, xxscm_tx_po_um = wmsData.PoUnit == null ? "" : wmsData.PoUnit, @@ -121,253 +144,388 @@ namespace CK.SCP.GrupUniApi.Controller xxscm_tx_qty_std = wmsData.PackQty, xxscm_tx_qty_total = wmsData.Qty, xxscm_tx_status = ((int)FormState.开放).ToString(), - xxscm_tx_type = "", + xxscm_tx_type = wmsData.Barcode,//版本号 xxscm_tx_vend = wmsData.VendId, xxscm_tx_vend_batch = wmsData.VendBatch, xxscm_tx_ware = "", - xxscm_tx_ware_class = "", + xxscm_tx_ware_class =wmsData.ModType,//子件 xxscm_tx_batch = wmsData.Batch, - xxscm_tx_produce_date = wmsData.ValidDate, + xxscm_tx_produce_date = wmsData.CreateTime, xxscm_tx_site = (!string.IsNullOrEmpty(wmsData.Site)) ? wmsData.Site : wmsData.Domain - }; - //PutScpCtrl(idb, qadData.xxscm_tx_seq, tableName,1,wmsData.Domain,wmsData.Site ); - qadDataList.Add(qadData); + }; + qadDataList.Add(qadData); + } + wmsData.State = (int)BillState.Finish; + wmsData.PutTime = DateTime.Now; + } + if (qadDataList.Count == 0) return; + //if (qadDataList1.Count == 0) return; + idb.xxscm_tx_mstr.AddRange(qadDataList); + idb.PURReplenishQty.AddRange(qadDataList1); + Console.WriteLine($"新增 发货单 数据:{qadDataList.Count} 条"); + PutScpCtrl(idb, seq, tableName, qadDataList.Count, uni_api.Domain, uni_api.Site); } - wmsData.State = (int)BillState.Finish; - wmsData.PutTime = DateTime.Now; - } - if (qadDataList.Count == 0) return; - idb.xxscm_tx_mstr.AddRange(qadDataList); - Console.WriteLine($"新增 发货单 数据:{qadDataList.Count} 条"); - PutScpCtrl(idb, seq, tableName, qadDataList.Count,uni_api.Domain,uni_api.Site); - } /// /// 采购订单 /// /// /// < param name="dataList"> - //private static void PutScmPo(UniApiEntities idb, List dataList) - //{ - - // var seq = CreateSeq("PO"); - - // var tableName = ScmTableName.xxscm_pod_det.ToString(); - // var qadDataList = new List(); - // foreach (var wmsData in dataList) - // { - - - // var qadData = qadDataList.SingleOrDefault(p => p.xxscm_pod_nbr == wmsData.ErpBillNum - // && p.xxscm_pod_line == wmsData.ErpLineNum - // && p.xxscm_pod_site == ScpCache.Config.QAD地点 - // && p.xxscm_pod_part == wmsData.PartCode); - // if (qadData == null) - // { - // if (wmsData.PartCode != null) - // qadData = new xxscm_pod_det - // { - // xxscm_pod_seq = seq, - // xxscm_pod_nbr = wmsData.ErpBillNum, - // xxscm_pod_part = wmsData.PartCode, + private static void PutScmPo(UniApiEntities idb, List dataList) + { + var uni_api = dataList.FirstOrDefault(); + string seq = string.Empty; + if (dataList.Count > 0) + { + seq = CreateSeq(string.IsNullOrEmpty(uni_api.Domain) ? uni_api.Site : uni_api.Domain); + } - // xxscm_pod_site = ScpCache.Config.QAD地点, - // xxscm_pod_vend = wmsData.VendId, - // xxscm_pod_loc_um = wmsData.LocUnit, - // xxscm_pod_qadread = ((int)UniApiState.待执行).ToString(), - // xxscm_pod_wmsread = ((int)UniApiState.待执行).ToString(), - // xxscm_pod_scmread = ((int)UniApiState.待执行).ToString(), - // xxscm_pod_mesread = ((int)UniApiState.待执行).ToString(), - // xxscm_pod_createur = wmsData.CreateOper, - // xxscm_pod_createdt = wmsData.CreateTime, - // xxscm_pod_updateur = "", - // xxscm_pod_updatedt = DateTime.Now, - // xxscm_pod_rmks = "", - // xxscm_pod_domain = ScpCache.Config.QAD域, - // xxscm_pod_attn = wmsData.Attn, - // xxscm_pod_buyer = wmsData.Buyer, - // xxscm_pod_buyer_phone = wmsData.BuyerPhone, - // xxscm_pod_confirm = false, - // xxscm_pod_curr = wmsData.Currency, - // xxscm_pod_desc = ScpCache.GetPartDesc(wmsData.PartCode), - // xxscm_pod_due_date = wmsData.ValidDate, - // xxscm_pod_line = wmsData.ErpLineNum, - // xxscm_pod_made = "", - // xxscm_pod_modtype = wmsData.ModType, - // xxscm_pod_name = "", - // xxscm_pod_price = wmsData.Price, - // xxscm_pod_qty_ord = wmsData.PackQty, - // xxscm_pod_qty_std = wmsData.Qty, - // xxscm_pod_qty_rct = 0, - // xxscm_pod_ship = wmsData.SourceBillNum, - // xxscm_pod_status = wmsData.State.ToString(), - // xxscm_pod_um = wmsData.PoUnit, - // xxscm_pod_um_conv = wmsData.UmConv, - // }; - // qadDataList.Add(qadData); - // } + var tableName = ScmTableName.xxscm_pod_det.ToString(); + var qadDataList = new List(); + var qadDataList1 = new List(); + foreach (var erpData in dataList) + { + string company =""; + if (erpData.Site == "W21") + { + company = "F02W21"; + } + else + { + company = "F02U32"; + } + var qadData1 = qadDataList1.SingleOrDefault(p => p.outPurDocNO == erpData.BillNum + && p.outPurDocItemNO == erpData.ErpLineNum.ToString() + && p.mtlNO == erpData.PartCode&&p.ctype==erpData.Receiver&&p.groupWareMaterielNO==erpData.Extend1); + if (qadData1 == null) + { + if (erpData.PartCode != null) + + + qadData1 = new PURSubcontractors + { + docDate = erpData.CreateTime, + returnsItem = erpData.Extend2, + purDocItemCtg = erpData.Invoice, + plant = erpData.Site, + purOrg = erpData.Site, + companyCode = company, + mtlNO = erpData.PartCode, + quantity = erpData.Qty, + itemDeliveryDate = erpData.PutTime, + price = erpData.Price, + baseUnitMeasure = erpData.PoUnit, + ordPriceUnit = erpData.Batch, + vendorNO = erpData.VendId, + purGrp = erpData.ModType, + ctype = erpData.Receiver, + measureBaseUnit = erpData.LocUnit, + groupWareMaterielNO = erpData.Extend1, + groupWarePlant = erpData.Site, + compRequireDate = erpData.PutTime, + COMPONQUANTITY = string.IsNullOrEmpty(erpData.ErpBillNum) ? 0 : decimal.Parse(erpData.ErpBillNum), + outPurDocNO = erpData.BillNum, + outPurDocItemNO = erpData.ErpLineNum.ToString(), + ordType = erpData.Barcode, + alternativeBOM = erpData.Currency, + storeLocation=erpData.Extend3, + createdBy=erpData.CreateOper, + remark=erpData.Attn + }; + qadDataList1.Add(qadData1); - // wmsData.State = (int)BillState.Finish; - // wmsData.PutTime = DateTime.Now; - // } - // if (qadDataList.Count == 0) return; + } + erpData.State = (int)BillState.Finish; + erpData.PutTime = DateTime.Now; - // idb.xxscm_pod_det.AddRange(qadDataList); - // Console.WriteLine($"新增 采购订单 数据:{qadDataList.Count} 条"); + } + foreach (var wmsData in dataList) + { + var qadData = qadDataList.SingleOrDefault(p => p.xxscm_pod_nbr == wmsData.BillNum + && p.xxscm_pod_nbr == wmsData.BillNum + && p.xxscm_pod_part == wmsData.PartCode + && p.xxscm_pod_line == wmsData.ErpLineNum&&p.xxscm_pod_groupWareMaterielNO==wmsData.Extend1); + + if (qadData == null) + { + if (wmsData.PartCode != null) + qadData = new xxscm_pod_det + { + xxscm_pod_seq = seq, + xxscm_pod_nbr = wmsData.BillNum, + xxscm_pod_part = wmsData.PartCode, + xxscm_pod_line = wmsData.ErpLineNum, + xxscm_pod_modtype = "2", + xxscm_pod_site = wmsData.Site, + xxscm_pod_domain = wmsData.Domain, + xxscm_pod_qty_ord = wmsData.Qty, + xxscm_pod_qty_rct = 0,//0 + xxscm_pod_qty_std = 0,//0 + xxscm_pod_due_date = wmsData.PutTime, + xxscm_pod_price = wmsData.Price, + xxscm_pod_loc_um = wmsData.PoUnit, + xxscm_pod_um = wmsData.Batch, + xxscm_pod_um_conv = 0,//0 + xxscm_pod_vend = wmsData.VendId, + xxscm_pod_ship = wmsData.Extend3, + xxscm_pod_buyer = wmsData.Buyer, + xxscm_pod_buyer_phone = wmsData.BuyerPhone, + xxscm_pod_qadread = "0", + xxscm_pod_wmsread = "0", + xxscm_pod_scmread = "0", + xxscm_pod_mesread = "0", + xxscm_pod_createdt = wmsData.CreateTime, + xxscm_pod_createur = wmsData.Buyer, + xxscm_pod_groupWareMaterielNO = wmsData.Extend1, + xxscm_pod_componquantity = wmsData.ErpBillNum, + xxscm_pod_measureBaseUnit = wmsData.LocUnit, + xxscm_pod_returnsItem = "N", + xxscm_pod_status = "1", + xxscm_pod_curr = "RMB", + xxscm_pod_companyCode = wmsData.Receiver,//类型 + xxscm_pod_ctype = wmsData.SubSite, + xxscm_pod_ordType = wmsData.Currency,//版本号 + xxscm_pod_purOrg = wmsData.Barcode + }; + qadDataList.Add(qadData); - // PutScpCtrl(idb, seq, tableName, qadDataList.Count); + } + wmsData.State = (int)BillState.Finish; + wmsData.PutTime = DateTime.Now; + } - //} + if (qadDataList.Count == 0) return; + //if (qadDataList1.Count == 0) return; + idb.xxscm_pod_det.AddRange(qadDataList); + idb.PURSubcontractors.AddRange(qadDataList1); + Console.WriteLine($"新增 采购订单 数据:{qadDataList.Count} 条"); + PutScpCtrl(idb, seq, tableName, qadDataList.Count, uni_api.Domain, uni_api.Site); + } /// - /// 条码 + /// 大订单 /// - /// - /// - private static void PutScmBarcode(UniApiEntities idb, List dataList) + /// + /// < param name="dataList"> + private static void PutScmMaxPo(UniApiEntities idb, List dataList) { - var tableName = ScmTableName.xxscm_tx_det.ToString(); - var qadDataList = new List(); + var uni_api = dataList.FirstOrDefault(); + string seq = string.Empty; + if (dataList.Count > 0) + { + seq = CreateSeq(string.IsNullOrEmpty(uni_api.Domain) ? uni_api.Site : uni_api.Domain); + } + + var tableName = ScmTableName.xxscm_maxpod_det.ToString(); + var qadDataList = new List(); + foreach (var wmsData in dataList) { - var qadData = qadDataList.SingleOrDefault(p => p.xxscm_tx_nbr == wmsData.BillNum - && p.xxscm_tx_boxcode == wmsData.Barcode); + var qadData = qadDataList.SingleOrDefault(p => p.xxscm_maxpod_nbr == wmsData.BillNum + && p.xxscm_maxpod_qty == wmsData.Qty + && p.xxscm_maxpod_part == wmsData.PartCode + && p.xxscm_maxpod_line == wmsData.ErpLineNum&&p.xxscm_maxpod_idention=="A"); if (qadData == null) { - qadData = new xxscm_tx_det - { - xxscm_tx_seq = CreateSeq(wmsData.Domain), - xxscm_tx_nbr = wmsData.BillNum, - xxscm_tx_part = wmsData.PartCode, - xxscm_tx_qadread = ((int)UniApiState.待执行).ToString(), - xxscm_tx_wmsread = ((int)UniApiState.待执行).ToString(), - xxscm_tx_scmread = ((int)UniApiState.待执行).ToString(), - xxscm_tx_mesread = ((int)UniApiState.待执行).ToString(), - xxscm_tx_createur = wmsData.CreateOper, - xxscm_tx_createdt = wmsData.CreateTime, - xxscm_tx_updateur = "", - xxscm_tx_updatedt = DateTime.Now, - xxscm_tx_rmks = "", - xxscm_tx_domain = wmsData.Domain, - xxscm_tx_vend = wmsData.VendId, - xxscm_tx_batch = wmsData.VendBatch, - xxscm_tx_boxcode = wmsData.Barcode, - xxscm_tx_qty_real = wmsData.Qty, - - }; + if (wmsData.PartCode != null) + qadData = new xxscm_maxpod_det + { + xxscm_maxpod_seq = seq, + xxscm_maxpod_nbr = wmsData.BillNum, + xxscm_maxpod_line = wmsData.ErpLineNum, + xxscm_maxpod_part=wmsData.PartCode, + xxscm_maxpod_groupart = wmsData.Extend1,//子件物料号 + xxscm_maxpod_qty=wmsData.Qty,//订货件数 + xxscm_maxpod_orderqty=wmsData.PackQty,//起订量 + xxscm_maxpod_orderqtyd=wmsData.Price,//订货量吨 + xxscm_maxpod_orderqtykg=wmsData.Price*1000,//订货量千克 + xxscm_maxpod_createtime=wmsData.CreateTime,//创建时间 + xxscm_maxpod_createuser=wmsData.CreateOper,//创建者 + xxscm_maxpod_month = wmsData.VendBatch,//合同月 + xxscm_maxpod_Model=wmsData.Currency,//车型 + xxscm_maxpod_texture=wmsData.Batch,//材质 + xxscm_maxpod_testandard=wmsData.Buyer,//技术标准 + xxscm_maxpod_forecastone=wmsData.PoUnit,//预测1 + xxscm_maxpod_forecasttwo=wmsData.LocUnit,//预测2 + xxscm_maxpod_forecastthree=wmsData.Attn,//预测3 + xxscm_maxpod_forecastfour=wmsData.Receiver,//预测4 + xxscm_maxpod_forecastfive=wmsData.ModType,//预测5 + xxscm_maxpod_forecastsix=wmsData.SubSite,//预测6 + xxscm_maxpod_site =wmsData.Site,//地点 + xxscm_maxpod_domain = wmsData.Site,//域 + xxscm_maxpod_idention=wmsData.Extend3,//类型 + xxscm_maxpod_vend=wmsData.VendId,//供应商编号 + xxscm_maxpod_manufacturer=wmsData.Extend2,//材料厂家 + xxscm_maxpod_consumption=wmsData.TaxAmt,//单件消耗 + + }; qadDataList.Add(qadData); + } wmsData.State = (int)BillState.Finish; wmsData.PutTime = DateTime.Now; } + if (qadDataList.Count == 0) return; - idb.xxscm_tx_det.AddRange(qadDataList); - Console.WriteLine($"新增 条码 数据:{qadDataList.Count} 条"); + //if (qadDataList1.Count == 0) return; + idb.xxscm_maxpod_det.AddRange(qadDataList); + + Console.WriteLine($"新增 大订单 数据:{qadDataList.Count} 条"); + PutScpCtrl(idb, seq, tableName, qadDataList.Count, uni_api.Domain, uni_api.Site); } + /// - /// 发票 + /// 条码 /// /// /// - private static void PutScmInvoice(UniApiEntities idb, List dataList) - { - try - { - if (dataList.Count > 0) + private static void PutScmBarcode(UniApiEntities idb, List dataList) { - var tableName = ScmTableName.xxscm_inv_det.ToString(); - var _ls = dataList.Select(p => p.BillNum).Distinct().ToList(); - foreach (var invBillNum in _ls) + var tableName = ScmTableName.xxscm_tx_det.ToString(); + var qadDataList = new List(); + foreach (var wmsData in dataList) { - var _invList = idb.xxscm_inv_det.Where(p => p.xxscm_inv_nbr == invBillNum ).ToList(); - if (_invList.Count == 0 ) + var qadData = qadDataList.SingleOrDefault(p => p.xxscm_tx_nbr == wmsData.BillNum + && p.xxscm_tx_boxcode == wmsData.Barcode); + if (qadData == null) { - var _unapiList = dataList.Where(p => p.BillNum == invBillNum).ToList(); - var _invbill = _invList.FirstOrDefault(); - if (_unapiList.Count > 0) + qadData = new xxscm_tx_det { - Thread.Sleep(10); - string seq = string.Empty; - var _api = _unapiList.FirstOrDefault(); - seq = CreateSeq(string.IsNullOrEmpty(_api.Domain) ? _api.Site : _api.Domain); - var qadDataList = new List(); - int i = 0; - - _unapiList.ForEach(p => - { - if (!string.IsNullOrEmpty(p.Attn)) - { - var _invoice = JsonConvert.DeserializeObject(p.Attn); - try - { - if (p.SourceBillNum != p.ErpBillNum) - { - var qadData = new xxscm_inv_det(); - qadData.xxscm_inv_seq = seq; - qadData.xxscm_inv_nbr = p.BillNum; - qadData.xxscm_inv_site = p.Site; - qadData.xxscm_inv_part = p.PartCode; - qadData.xxscm_inv_qty = p.Qty; - qadData.xxscm_inv_qadread = ((int)UniApiState.待执行).ToString(); - qadData.xxscm_inv_wmsread = ((int)UniApiState.待执行).ToString(); - qadData.xxscm_inv_scmread = ((int)UniApiState.待执行).ToString(); - qadData.xxscm_inv_mesread = ((int)UniApiState.待执行).ToString(); - qadData.xxscm_inv_createur = p.CreateOper; - qadData.xxscm_inv_createdt = p.CreateTime; - qadData.xxscm_inv_updateur = ""; - qadData.xxscm_inv_updatedt = DateTime.Now; - qadData.xxscm_inv_rmks = ""; - qadData.xxscm_inv_domain = p.Domain; - qadData.xxscm_inv_amt = Math.Round(p.Price * p.Qty, 2); - qadData.xxscm_inv_asn = p.SourceBillNum; - qadData.xxscm_inv_curr = p.Currency==null? "CNY" : p.Currency; - qadData.xxscm_inv_vend = p.VendId; - qadData.xxscm_inv_project = p.VendBatch;//代替项目传值 - qadData.xxscm_inv_line = p.ErpLineNum; - qadData.xxscm_inv_invoice = p.Invoice; - qadData.xxscm_inv_order = p.ErpBillNum; - qadData.xxscm_inv_price = p.Price; - qadData.xxscm_inv_taxamt = Math.Round(Math.Round(p.Price * p.Qty,2) * p.Tax, 2) + Math.Round(p.Price * p.Qty, 2); - qadData.xxscm_inv_receiver = p.Receiver; - qadData.xxscm_inv_taxt = p.Tax; - qadData.xxscm_inv_comments = ""; - qadData.xxscm_inv_holdamt = 0; - qadData.xxscm_inv_acctuser = ""; - qadData.xxscm_inv_date = _invoice.UpdateTime == null ? _invoice.CreateTime.Value.AddDays(1) : _invoice.UpdateTime.Value; - qadData.xxscm_inv_totamt = _invoice.Amount.Value; - qadData.xxscm_inv_tottax = _invoice.Total.Value; - qadData.xxscm_inv_totdiscount = _invoice.DiscountPrice == null ? 0 : _invoice.DiscountPrice.Value;//折扣金额 - qadData.xxscm_inv_tottaxvar = _invoice.BlancePrice == null ? 0 : _invoice.BlancePrice.Value;//调整税额 - qadData.xxscm_inv_totclaim= _invoice.ContractPrice == null ? 0 : _invoice.ContractPrice.Value;//索赔金额 - qadData.xxscm_inv_extend1 = _invoice.Extend1 == null ? 0 : _invoice.Extend1.Value;//纸质发票税前金额 - qadData.xxscm_inv_extend2 = _invoice.Extend2 == null ? 0 : _invoice.Extend2.Value;//纸质发票税额 - qadDataList.Add(qadData); - p.State = (int)BillState.Finish; - p.PutTime = DateTime.Now; - i++; - } - } - catch (Exception e) - { - string s = e.Message+"行号"+i.ToString(); - } - } - }); - idb.xxscm_inv_det.AddRange(qadDataList); - Console.WriteLine($"新增 发票 数据:{qadDataList.Count} 条"); - PutScpCtrl(idb, seq, tableName, qadDataList.Count, _api.Domain, _api.Site); - } + xxscm_tx_seq = CreateSeq(wmsData.Domain), + xxscm_tx_nbr = wmsData.BillNum, + xxscm_tx_part = wmsData.PartCode, + xxscm_tx_qadread = ((int)UniApiState.待执行).ToString(), + xxscm_tx_wmsread = ((int)UniApiState.待执行).ToString(), + xxscm_tx_scmread = ((int)UniApiState.待执行).ToString(), + xxscm_tx_mesread = ((int)UniApiState.待执行).ToString(), + xxscm_tx_createur = wmsData.CreateOper, + xxscm_tx_createdt = wmsData.CreateTime, + xxscm_tx_updateur = "", + xxscm_tx_updatedt = DateTime.Now, + xxscm_tx_rmks = "", + xxscm_tx_domain = wmsData.Domain, + xxscm_tx_vend = wmsData.VendId, + xxscm_tx_batch = wmsData.VendBatch, + xxscm_tx_boxcode = wmsData.Barcode, + xxscm_tx_qty_real = wmsData.Qty, + + }; + qadDataList.Add(qadData); } + wmsData.State = (int)BillState.Finish; + wmsData.PutTime = DateTime.Now; } + if (qadDataList.Count == 0) return; + idb.xxscm_tx_det.AddRange(qadDataList); + Console.WriteLine($"新增 条码 数据:{qadDataList.Count} 条"); + } - } - catch (Exception e) - { - throw e; + + /// + /// 发票 + /// + /// + /// + //private static void PutScmInvoice(UniApiEntities idb, List dataList) + //{ + // try + // { + // if (dataList.Count > 0) + // { + // var tableName = ScmTableName.xxscm_inv_det.ToString(); + // var _ls = dataList.Select(p => p.BillNum).Distinct().ToList(); + // foreach (var invBillNum in _ls) + // { + // var _invList = idb.xxscm_inv_det.Where(p => p.xxscm_inv_nbr == invBillNum).ToList(); + // if (_invList.Count == 0) + // { + // var _unapiList = dataList.Where(p => p.BillNum == invBillNum).ToList(); + // var _invbill = _invList.FirstOrDefault(); + // if (_unapiList.Count > 0) + // { + // Thread.Sleep(10); + // string seq = string.Empty; + // var _api = _unapiList.FirstOrDefault(); + // seq = CreateSeq(string.IsNullOrEmpty(_api.Domain) ? _api.Site : _api.Domain); + // var qadDataList = new List(); + // int i = 0; + + // _unapiList.ForEach(p => + // { + // if (!string.IsNullOrEmpty(p.Attn)) + // { + // var _invoice = JsonConvert.DeserializeObject(p.Attn); + // try + // { + // if (p.SourceBillNum != p.ErpBillNum) + // { + // var qadData = new xxscm_inv_det(); + // qadData.xxscm_inv_seq = seq; + // qadData.xxscm_inv_nbr = p.BillNum; + // qadData.xxscm_inv_site = p.Site; + // qadData.xxscm_inv_part = p.PartCode; + // qadData.xxscm_inv_qty = p.Qty; + // qadData.xxscm_inv_qadread = ((int)UniApiState.待执行).ToString(); + // qadData.xxscm_inv_wmsread = ((int)UniApiState.待执行).ToString(); + // qadData.xxscm_inv_scmread = ((int)UniApiState.待执行).ToString(); + // qadData.xxscm_inv_mesread = ((int)UniApiState.待执行).ToString(); + // qadData.xxscm_inv_createur = p.CreateOper; + // qadData.xxscm_inv_createdt = p.CreateTime; + // qadData.xxscm_inv_updateur = ""; + // qadData.xxscm_inv_updatedt = DateTime.Now; + // qadData.xxscm_inv_rmks = ""; + // qadData.xxscm_inv_domain = p.Domain; + // qadData.xxscm_inv_amt = Math.Round(p.Price * p.Qty, 2); + // qadData.xxscm_inv_asn = p.SourceBillNum; + // qadData.xxscm_inv_curr = p.Currency == null ? "CNY" : p.Currency; + // qadData.xxscm_inv_vend = p.VendId; + // qadData.xxscm_inv_project = p.VendBatch;//代替项目传值 + // qadData.xxscm_inv_line = p.ErpLineNum; + // qadData.xxscm_inv_invoice = p.Invoice; + // qadData.xxscm_inv_order = p.ErpBillNum; + // qadData.xxscm_inv_price = p.Price; + // qadData.xxscm_inv_taxamt = Math.Round(Math.Round(p.Price * p.Qty, 2) * p.Tax, 2) + Math.Round(p.Price * p.Qty, 2); + // qadData.xxscm_inv_receiver = p.Receiver; + // qadData.xxscm_inv_taxt = p.Tax; + // qadData.xxscm_inv_comments = ""; + // qadData.xxscm_inv_holdamt = 0; + // qadData.xxscm_inv_acctuser = ""; + // qadData.xxscm_inv_date = _invoice.UpdateTime == null ? _invoice.CreateTime.Value.AddDays(1) : _invoice.UpdateTime.Value; + // qadData.xxscm_inv_totamt = _invoice.Amount.Value; + // qadData.xxscm_inv_tottax = _invoice.Total.Value; + // qadData.xxscm_inv_totdiscount = _invoice.DiscountPrice == null ? 0 : _invoice.DiscountPrice.Value;//折扣金额 + // qadData.xxscm_inv_tottaxvar = _invoice.BlancePrice == null ? 0 : _invoice.BlancePrice.Value;//调整税额 + // qadData.xxscm_inv_totclaim = _invoice.ContractPrice == null ? 0 : _invoice.ContractPrice.Value;//索赔金额 + // qadData.xxscm_inv_extend1 = _invoice.Extend1 == null ? 0 : _invoice.Extend1.Value;//纸质发票税前金额 + // qadData.xxscm_inv_extend2 = _invoice.Extend2 == null ? 0 : _invoice.Extend2.Value;//纸质发票税额 + // qadDataList.Add(qadData); + // p.State = (int)BillState.Finish; + // p.PutTime = DateTime.Now; + // i++; + // } + // } + // catch (Exception e) + // { + // string s = e.Message + "行号" + i.ToString(); + // } + // } + // }); + // idb.xxscm_inv_det.AddRange(qadDataList); + // Console.WriteLine($"新增 发票 数据:{qadDataList.Count} 条"); + // PutScpCtrl(idb, seq, tableName, qadDataList.Count, _api.Domain, _api.Site); + // } + // } + // } + // } + // } + // catch (Exception e) + // { + // throw e; + // } + //} } } - } -} \ No newline at end of file + diff --git a/UniApiGroup/Controller/OdbcApiWmsController.cs b/UniApiGroup/Controller/OdbcApiWmsController.cs index 763abf1..ab9ae3f 100644 --- a/UniApiGroup/Controller/OdbcApiWmsController.cs +++ b/UniApiGroup/Controller/OdbcApiWmsController.cs @@ -257,6 +257,8 @@ namespace CK.SCP.GrupUniApi.Controller var qadRcvDetailList = idb.xxwms_rc_det.Where(p => p.xxwms_rc_seq == seq&&p.xxwms_rc_qty_total>=0).ToList(); var scpRcvList = new List(); var scpRcveDetailList = new List(); + var scpMaxPoDetailList = new List(); + var scpConSumeList = new List(); //xxwms_rc_po_nbrɹֶȥ var qadReceiveNbrList = qadRcvDetailList.Select(p => p.xxwms_rc_nbr.ToUpper()).DistinctBy(p => p); foreach (var qadRcvNbrList in qadReceiveNbrList) @@ -340,6 +342,77 @@ namespace CK.SCP.GrupUniApi.Controller { try { + if (qadData.xxwms_rc_domain == "W21") + { + var Po = wdb.TB_PO.FirstOrDefault(p => p.PoBillNum == qadData.xxwms_rc_po_nbr); + if (Po != null) + { + if (Po.UpdateInfo == "Y") + { + string[] arr = qadData.xxwms_rc_ware_class.Split(';'); + + foreach (var ar in arr) + { + if (ar != "") + { + string[] arrr = ar.Split('-'); + string pobillnum = arrr[0]; + decimal qty = decimal.Parse(arrr[1]); + var maxpodetail = wdb.TB_MAXPO_DETAIL.FirstOrDefault(p => p.PartCode == qadData.xxwms_rc_part && p.PoBillNum == pobillnum); + if (maxpodetail != null) + { + maxpodetail.ReceQty = maxpodetail.ReceQty + qty; + scpMaxPoDetailList.Add(maxpodetail); + TB_MAXPO_CONSUME cONSUME = new TB_MAXPO_CONSUME(); + cONSUME.PoBillNum = pobillnum; + cONSUME.BillNum = qadData.xxwms_rc_nbr; + cONSUME.PartCode = qadData.xxwms_rc_part; + cONSUME.VendId = maxpodetail.VendId; + cONSUME.PoQty = qty; + cONSUME.ShipTime = qadData.xxwms_rc_date_ship; + scpConSumeList.Add(cONSUME); + } + } + + + } + + } + } + else + { + if (!string.IsNullOrEmpty(qadData.xxwms_rc_ware_class)) + { + string[] arr = qadData.xxwms_rc_ware_class.Split(';'); + + foreach (var ar in arr) + { + if (ar != "") + { + string[] arrr = ar.Split('-'); + string pobillnum = arrr[0]; + decimal qty = decimal.Parse(arrr[1]); + var maxpodetail = wdb.TB_MAXPO_DETAIL.FirstOrDefault(p => p.PartCode == qadData.xxwms_rc_part && p.PoBillNum == pobillnum); + if (maxpodetail != null) + { + maxpodetail.ReturnQty = maxpodetail.ReturnQty - qty; + scpMaxPoDetailList.Add(maxpodetail); + TB_MAXPO_CONSUME cONSUME = new TB_MAXPO_CONSUME(); + cONSUME.PoBillNum = pobillnum; + cONSUME.BillNum = qadData.xxwms_rc_nbr; + cONSUME.PartCode = qadData.xxwms_rc_part; + cONSUME.VendId = maxpodetail.VendId; + cONSUME.PoQty = -qty; + cONSUME.ShipTime = qadData.xxwms_rc_date_ship; + scpConSumeList.Add(cONSUME); + } + } + + + } + } + } + } var poLineNum = Convert.ToInt32(qadData.xxwms_rc_po_line); var scpRcvDetail = wdb.TB_RECEIVE_DETAIL.SingleOrDefault( @@ -380,10 +453,12 @@ namespace CK.SCP.GrupUniApi.Controller SubSite = !string.IsNullOrEmpty(firstqadData.xxwms_rc_site) ? firstqadData.xxwms_rc_site : firstqadData.xxwms_rc_domain, CreateTime = qadData.xxwms_rc_createdt == null ? DateTime.Now : (DateTime)qadData.xxwms_rc_createdt,// CreateUser = qadData.xxwms_rc_createur,//û - IsDeleted = false, + Extend1 = qadData.xxwms_rc_ps_nbr,// + IsDeleted = false, GUID = System.Guid.NewGuid(), BillType = billtype }; + scpRcveDetailList.Add(scpRcvDetail); } @@ -401,6 +476,8 @@ namespace CK.SCP.GrupUniApi.Controller } wdb.TB_RECEIVE.AddOrUpdate(scpRcvList.ToArray()); wdb.TB_RECEIVE_DETAIL.AddOrUpdate(scpRcveDetailList.ToArray()); + wdb.TB_MAXPO_DETAIL.AddOrUpdate(scpMaxPoDetailList.ToArray()); + wdb.TB_MAXPO_CONSUME.AddOrUpdate(scpConSumeList.ToArray()); Console.WriteLine($" ջ ݣ{qadRcvDetailList.Count}"); } @@ -683,7 +760,8 @@ namespace CK.SCP.GrupUniApi.Controller var qadRcvDetailList = idb.xxwms_rt_det.Where(p => p.xxwms_rt_seq == seq).ToList(); var scpRcvList = new List(); var scpRcveDetailList = new List(); - + var scpMaxPoDetailList = new List(); + var scpConSumeList = new List(); //xxqad_prh_receiverֶȥ var qadReceiveNbrList = qadRcvDetailList.Select(p => p.xxwms_rt_nbr.ToUpper()).DistinctBy(p => p); @@ -755,6 +833,44 @@ namespace CK.SCP.GrupUniApi.Controller { try { + if (qadData.xxwms_rt_domain == "W21") + { + var Po = wdb.TB_PO.FirstOrDefault(p => p.PoBillNum == qadData.xxwms_rt_po_nbr); + if (Po != null) + { + if (Po.UpdateInfo == "Y") + { + string[] arr = qadData.xxwms_rt_ware_class.Split(';'); + + foreach (var ar in arr) + { + if (ar != "") + { + string[] arrr = ar.Split('-'); + string pobillnum = arrr[0]; + decimal qty = decimal.Parse(arrr[1]); + var maxpodetail = wdb.TB_MAXPO_DETAIL.FirstOrDefault(p => p.PartCode == qadData.xxwms_rt_part && p.PoBillNum == pobillnum); + if (maxpodetail != null) + { + maxpodetail.ReturnQty = maxpodetail.ReturnQty -qty; + scpMaxPoDetailList.Add(maxpodetail); + TB_MAXPO_CONSUME cONSUME = new TB_MAXPO_CONSUME(); + cONSUME.PoBillNum = pobillnum; + cONSUME.BillNum = qadData.xxwms_rt_nbr; + cONSUME.PartCode = qadData.xxwms_rt_part; + cONSUME.VendId = maxpodetail.VendId; + cONSUME.PoQty = -qty; + cONSUME.ShipTime = qadData.xxwms_rt_date_ship; + scpConSumeList.Add(cONSUME); + } + } + + + } + + } + } + } var poLineNum = Convert.ToInt32(qadData.xxwms_rt_po_line); var scpRcvDetail = @@ -831,6 +947,8 @@ namespace CK.SCP.GrupUniApi.Controller } wdb.TB_RECEIVE.AddOrUpdate(scpRcvList.ToArray()); wdb.TB_RECEIVE_DETAIL.AddOrUpdate(scpRcveDetailList.ToArray()); + wdb.TB_MAXPO_DETAIL.AddOrUpdate(scpMaxPoDetailList.ToArray()); + wdb.TB_MAXPO_CONSUME.AddOrUpdate(scpConSumeList.ToArray()); Console.WriteLine($" ˻ ݣ{qadRcvDetailList.Count}"); } diff --git a/UniApiGroup/Controller/PoBillNumcontroller.cs b/UniApiGroup/Controller/PoBillNumcontroller.cs new file mode 100644 index 0000000..8a50187 --- /dev/null +++ b/UniApiGroup/Controller/PoBillNumcontroller.cs @@ -0,0 +1,69 @@ +using ChangKeTec.Wms.Controller.Report; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.UniApi.Controller +{ + public static class PoBillNumcontroller + { + public static DataTable GetInvBatchStock(int di_d,string site) + { + + //string Sql = $"select * from PURStockBill"; + //Sql += $" Where ordType='CY06' and plant='W21' and di_batchNO>{di_d}"; + //var dt_Part = DBControllerByOracle.GetDataTable(Sql); + string Sql = $"select * from PURStockBill"; + Sql += $" Where ordType='CY06' and plant='W21' and di_batchNO>{di_d}"; + var dt_Part = DBControllerByOracle.GetDataTable(Sql); + return dt_Part; + } + + public class PURStockBill + { + /// + /// 工厂 + /// + public int DI_BATCHNO { get; set; } + + public string purDocNO { get; set; } + public string purDocItemNO { get; set; } + /// + /// 物料号 + /// + public string ordType { get; set; } + public string docDate { get; set; } + public string returnsItem { get; set; } + public string sizecoL { get; set; } + public string purDocItemCtg { get; set; } + public string plant { get; set; } + public string purOrg { get; set; } + public string companyCode { get; set; } + public string mtlNO { get; set; } + public string shortText { get; set; } + public decimal quantity { get; set; } + public DateTime itemDeliveryDate { get; set; } + public decimal price { get; set; } + public string vendorNO { get; set; } + public DateTime createdDate { get; set; } + public string createdBy { get; set; } + public string responsibleSalesperson { get; set; } + public string purGrp { get; set; } + public string phone { get; set; } + public DateTime di_updatetime { get; set; } + public string updatedBy { get; set; } + public string baseUnitMeasure { get; set; } + public string firsttelno { get; set; } + public string proposerid { get; set; } + public string CREATEDBY { get; set; } + public string ctype { get; set; } + /// + /// 批次 + /// + + } + } +} \ No newline at end of file diff --git a/UniApiGroup/Controller/PriceController.cs b/UniApiGroup/Controller/PriceController.cs new file mode 100644 index 0000000..e51c22b --- /dev/null +++ b/UniApiGroup/Controller/PriceController.cs @@ -0,0 +1,68 @@ +using ChangKeTec.Wms.Controller.Report; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.UniApi.Controller +{ + class PriceController + { + public static DataTable GetInvBatchPrice(int rownum,string site) + { + //var StartRow = rownum; + //var snycCount = 100; + //string Sql = $"select * from ( select rownum myrn ,PURPriceDealMidTab.* from PURPriceDealMidTab where plant='W21' order by di_batchNO,mtlNO ) tt where tt.myrn >={StartRow + 1} and tt.myrn <={StartRow + snycCount} order by myrn "; + string Sql = ""; + if (site == "W21") + { + Sql = $"select* from PURPriceDealMidTab"; + Sql += $" Where di_batchNO>{rownum} and plant='W21'"; + } + else + { + Sql = $"select* from PURPriceDealMidTabFW"; + Sql += $" Where di_batchNO>{rownum} and plant='U32'"; + } + var dt_Part = DBControllerByOracle.GetDataTable(Sql); + return dt_Part; + } + + public class PURPriceDealMidTab + { + /// + /// 工厂 + /// + /// + public int DI_BATCHNO { get; set; } + public string vendorNO { get; set; } + + /// + /// 存储地点 + /// + public string MTLNO { get; set; } + + /// + /// 物料号 + /// + + public string plant { get; set; } + public string purchasePrice { get; set; } + public string createdBy { get; set; } + public string created { get; set; } + public string ordUnit { get; set; } + public DateTime validityStartPeriod { get; set; } + public DateTime validityEndPeriod { get; set; } + + /// + /// 批次 + /// + + } + } +} + + + diff --git a/UniApiGroup/Controller/QmStockController.cs b/UniApiGroup/Controller/QmStockController.cs new file mode 100644 index 0000000..494769e --- /dev/null +++ b/UniApiGroup/Controller/QmStockController.cs @@ -0,0 +1,69 @@ +#region 引用命名 +using ChangKeTec.Wms.Controller.Report; +using ChangKeTec.Wms.Models.Wms; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +#endregion + +namespace ChangKeTec.Wms.Controller.Bill +{ + public static class QmStockController + { + public static DataTable GetInvBatchStock(int rownum,int di_part,string site) + { + // var StartRow = rownum; + // var snycCount = 100; + // string Sql = $"select * from ( select rownum myrn ,MMRSendMtlData.* from MMRSendMtlData where plant='U32' and stdPrice>0 and mtlType in('WS','YC','WG','WT') order by di_batchNO,mtlNO ) tt where tt.myrn >={StartRow + 1} and tt.myrn <={StartRow + snycCount} order by myrn "; + + + //var dt_Part = DBControllerByOracle.GetDataTable(Sql); + string Sql = ""; + + + if (site == "W21") + { + Sql = $"select* from MMRSendMtlData"; + Sql += $" Where plant='W21' and stdPrice>0 and di_batchNO>{di_part}"; + } + else + { + Sql = $"select* from MMRSendMtlDataFW"; + Sql += $" Where plant='U32' and stdPrice>0 and di_batchNO>{di_part}"; + } + var dt_Part = DBControllerByOracle.GetDataTable(Sql); + return dt_Part; + } + + public class MMRSENDMTLDATA + { + /// + /// 工厂 + /// + public int DI_BATCHNO { get; set; } + + + public string MTLNO { get; set; } + + + + public string plant { get; set; } + public string MTLNODES { get; set; } + public string MTLTYPE { get; set; } + public string MEASUREBASEUNIT { get; set; } + public string SpMtlStatus { get; set; } + public decimal stdPrice { get; set; } + + public int loadQuantity { get; set; } + public decimal grossWeight { get; set; } + public decimal netWeight { get; set; } + public string sizes { get; set; } + + public string MATBRAND { get; set; } + + } +} + } diff --git a/UniApiGroup/Controller/Vendercontroller.cs b/UniApiGroup/Controller/Vendercontroller.cs new file mode 100644 index 0000000..03124e9 --- /dev/null +++ b/UniApiGroup/Controller/Vendercontroller.cs @@ -0,0 +1,67 @@ +using ChangKeTec.Wms.Controller.Report; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.UniApi.Controller +{ + public static class Vendercontroller + { + public static DataTable GetInvBatchStock(int rownum, int di_vend,string site) + { + //var StartRow = rownum; + //var snycCount = 100; + //string Sql = $"select * from ( select rownum myrn ,PURVendorMid.* from PURVendorMid order by di_batchNO,VENDORNO ) tt where tt.myrn >={StartRow + 1} and tt.myrn <={StartRow + snycCount} order by myrn "; + //string Sql = $"Select * from PURVendorMid"; + //Sql += $" where DI_BATCHNO >101"; + + string Sql = ""; + if (site == "W21") + { + Sql = $"select* from PURVendorMid"; + Sql += $" Where PURORG='W21' and di_batchNO>{di_vend}"; + } + else + { + Sql = $"select* from PURVendorMidFW"; + Sql += $" Where PURORG='U32' and di_batchNO>{di_vend}"; + } + + var dt_Part = DBControllerByOracle.GetDataTable(Sql); + + + + return dt_Part; + } + + public class PURVendorMid + { + /// + /// 工厂 + /// + public int DI_BATCHNO { get; set; } + + /// + /// 存储地点 + /// + public string VENDORNO { get; set; } + public string MTLNO { get; set; } + /// + /// 物料号 + /// + public string PLANT { get; set; } + public string NAME1 { get; set; } + public string NAME2 { get; set; } + public string COMMUADDRESS { get; set; } + public string country { get; set; } + public string firstTelNO { get; set; } + public string providerType { get; set; } + public string FAXNUMBER { get; set; } + public string PURORG { get; set; } + + } + } +} diff --git a/UniApiGroup/Controller/vendidpartcontroller.cs b/UniApiGroup/Controller/vendidpartcontroller.cs new file mode 100644 index 0000000..133f6e6 --- /dev/null +++ b/UniApiGroup/Controller/vendidpartcontroller.cs @@ -0,0 +1,50 @@ +using ChangKeTec.Wms.Controller.Report; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CK.SCP.UniApi.Controller +{ + public static class vendidpartcontroller + { + public static DataTable GetInvBatchStock(string ls) + { + + string Sql = $"Select * from PURVenStockGoodsMid"; + Sql += $" Where di_batchNO>{ls}"; + + var dt_Part = DBControllerByOracle.GetDataTable(Sql); + + return dt_Part; + } + + public class PURVendorpartMid + { + /// + /// 工厂 + /// + public string DI_BATCHNO { get; set; } + + /// + /// 存储地点 + /// + public string VENDORNO { get; set; } + + /// + /// 物料号 + /// + public string created { get; set; } + public string createdBy { get; set; } + public string MTLNO { get; set; } + public string PLANT { get; set; } + public string memo { get; set; } + /// + /// 批次 + /// + + } + } +} \ No newline at end of file diff --git a/UniApiGroup/Properties/Resources.Designer.cs b/UniApiGroup/Properties/Resources.Designer.cs index d3fedfd..599b01b 100644 --- a/UniApiGroup/Properties/Resources.Designer.cs +++ b/UniApiGroup/Properties/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace CK.SCP.GrupUniApi.Properties { +namespace CK.SCP.UniApi.Properties { using System; @@ -19,7 +19,7 @@ namespace CK.SCP.GrupUniApi.Properties { // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen // (以 /str 作为命令选项),或重新生成 VS 项目。 - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -39,7 +39,7 @@ namespace CK.SCP.GrupUniApi.Properties { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CK.SCP.GrupUniApi.Properties.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CK.SCP.UniApi.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; @@ -47,8 +47,8 @@ namespace CK.SCP.GrupUniApi.Properties { } /// - /// 使用此强类型资源类,为所有资源查找 - /// 重写当前线程的 CurrentUICulture 属性。 + /// 重写当前线程的 CurrentUICulture 属性,对 + /// 使用此强类型资源类的所有资源查找执行重写。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { diff --git a/UniApiGroup/Properties/Settings.Designer.cs b/UniApiGroup/Properties/Settings.Designer.cs index 78d316e..f3fc6c3 100644 --- a/UniApiGroup/Properties/Settings.Designer.cs +++ b/UniApiGroup/Properties/Settings.Designer.cs @@ -8,11 +8,11 @@ // //------------------------------------------------------------------------------ -namespace CK.SCP.GrupUniApi.Properties { +namespace CK.SCP.UniApi.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/UniApiGroup/QadOdbcApi.cs b/UniApiGroup/QadOdbcApi.cs index c11b649..e8bbc31 100644 --- a/UniApiGroup/QadOdbcApi.cs +++ b/UniApiGroup/QadOdbcApi.cs @@ -8,6 +8,7 @@ using CK.SCP.GrupUniApi.Controller; using System.Transactions; using System.Data.Entity.Core; using CK.SCP.UniApi.Controller; +using ChangKeTec.Utils; namespace CK.SCP.GrupUniApi { @@ -125,7 +126,7 @@ namespace CK.SCP.GrupUniApi catch (Exception ex) { Console.WriteLine(string.Format("错误:{0}", ex.Message)); - // MessageHelper.ShowError(ex); + //MessageHelper.ShowError(ex); } } diff --git a/UniApiGroup/Scp数据库设置.ini b/UniApiGroup/Scp数据库设置.ini index ce4d0dce14db18068f8aa362987cfb7d1a7c475a..ded7d233f009307c7e2f099c390f0f602df556ce 100644 GIT binary patch delta 163 zcmZ3)bcks}kYfr%Dnl8A9z!w^mNR5BBhU jG-PlD>N5pmXP}H3P~MEe3CK5RFox8++67$z delta 12 UcmX@Zbcty~$Ha9~6X$FI03`nf@c;k- diff --git a/UniApiWpf/App.config b/UniApiWpf/App.config index 7fc4b2d..be1f2ac 100644 --- a/UniApiWpf/App.config +++ b/UniApiWpf/App.config @@ -1,40 +1,40 @@ - + -
+
-
+
- + - + - + - - + + - - + + - - - + + + @@ -46,13 +46,13 @@ - + - + - \ No newline at end of file + diff --git a/UniApiWpf/Properties/Resources.Designer.cs b/UniApiWpf/Properties/Resources.Designer.cs index 5862679..a37891e 100644 --- a/UniApiWpf/Properties/Resources.Designer.cs +++ b/UniApiWpf/Properties/Resources.Designer.cs @@ -1,69 +1,61 @@ //------------------------------------------------------------------------------ // // 此代码由工具生成。 -// 运行时版本: 4.0.30319.42000 +// 运行时版本:4.0.30319.42000 // -// 对此文件的更改可能导致不正确的行为,如果 -// 重新生成代码,则所做更改将丢失。 +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ -namespace UniApiWpf.Properties -{ - - +namespace UniApiWpf.Properties { + using System; + + /// - /// 强类型资源类,用于查找本地化字符串等。 + /// 一个强类型的资源类,用于查找本地化的字符串等。 /// // 此类是由 StronglyTypedResourceBuilder // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 - // 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen // (以 /str 作为命令选项),或重新生成 VS 项目。 - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - + internal class Resources { + private static global::System.Resources.ResourceManager resourceMan; - + private static global::System.Globalization.CultureInfo resourceCulture; - + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { + internal Resources() { } - + /// - /// 返回此类使用的缓存 ResourceManager 实例。 + /// 返回此类使用的缓存的 ResourceManager 实例。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UniApiWpf.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// - /// 覆盖当前线程的 CurrentUICulture 属性 - /// 使用此强类型的资源类的资源查找。 + /// 重写当前线程的 CurrentUICulture 属性,对 + /// 使用此强类型资源类的所有资源查找执行重写。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + internal static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + set { resourceCulture = value; } } diff --git a/UniApiWpf/Properties/Settings.Designer.cs b/UniApiWpf/Properties/Settings.Designer.cs index 98cf45b..61f823b 100644 --- a/UniApiWpf/Properties/Settings.Designer.cs +++ b/UniApiWpf/Properties/Settings.Designer.cs @@ -1,28 +1,24 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ -namespace UniApiWpf.Properties -{ - - +namespace UniApiWpf.Properties { + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { + + public static Settings Default { + get { return defaultInstance; } } diff --git a/UniApiWpf/UniApiWpf.csproj b/UniApiWpf/UniApiWpf.csproj index 21a87bb..a6ec7ca 100644 --- a/UniApiWpf/UniApiWpf.csproj +++ b/UniApiWpf/UniApiWpf.csproj @@ -29,6 +29,7 @@ false false true + AnyCPU diff --git a/Utils/app.config b/Utils/app.config index b5d2fd5..5573142 100644 --- a/Utils/app.config +++ b/Utils/app.config @@ -1,11 +1,11 @@ - + - - + + - \ No newline at end of file + diff --git a/WebService/DEncrypt.cs b/WebService/DEncrypt.cs new file mode 100644 index 0000000..ce64b1d --- /dev/null +++ b/WebService/DEncrypt.cs @@ -0,0 +1,225 @@ +using System; +using System.IO; +using System.Security.Cryptography; +using System.Text; + +namespace WebService +{ + + public class Encryption64 + { + //private byte[] key = {}; + //private byte[] IV = {10, 20, 30, 40, 50, 60, 70, 80}; // it can be any byte value + + public static string Decrypt(string stringToDecrypt, + string sEncryptionKey) + { + + byte[] key = { }; + byte[] IV = { 10, 20, 30, 40, 50, 60, 70, 80 }; + byte[] inputByteArray = new byte[stringToDecrypt.Length]; + + try + { + key = Encoding.UTF8.GetBytes(sEncryptionKey.Substring(0, 8)); + DESCryptoServiceProvider des = new DESCryptoServiceProvider(); + inputByteArray = Convert.FromBase64String(stringToDecrypt); + + MemoryStream ms = new MemoryStream(); + CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key, IV), CryptoStreamMode.Write); + cs.Write(inputByteArray, 0, inputByteArray.Length); + cs.FlushFinalBlock(); + + Encoding encoding = Encoding.UTF8; + return encoding.GetString(ms.ToArray()); + } + catch (System.Exception ex) + { + return string.Empty; + } + } + + public static string Encrypt(string stringToEncrypt, + string sEncryptionKey) + { + + byte[] key = { }; + byte[] IV = { 10, 20, 30, 40, 50, 60, 70, 80 }; + byte[] inputByteArray; //Convert.ToByte(stringToEncrypt.Length) + + try + { + key = Encoding.UTF8.GetBytes(sEncryptionKey.Substring(0, 8)); + DESCryptoServiceProvider des = new DESCryptoServiceProvider(); + inputByteArray = Encoding.UTF8.GetBytes(stringToEncrypt); + MemoryStream ms = new MemoryStream(); + CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write); + cs.Write(inputByteArray, 0, inputByteArray.Length); + cs.FlushFinalBlock(); + + return Convert.ToBase64String(ms.ToArray()); + } + catch (System.Exception ex) + { + return string.Empty; + } + } + } + + + + + /// + /// Encrypt 的摘要说明。 + /// LiTianPing + /// + public class DEncrypt + { + /// + /// 构造方法 + /// + public DEncrypt() + { + } + + #region 使用 缺省密钥字符串 加密/解密string + + /// + /// 使用缺省密钥字符串加密string + /// + /// 明文 + /// 密文 + public static string Encrypt(string original) + { + return Encrypt(original, "%FSxh#s&A!Csd"); + } + /// + /// 使用缺省密钥字符串解密string + /// + /// 密文 + /// 明文 + public static string Decrypt(string original) + { + return Decrypt(original, "%FSxh#s&A!Csd", System.Text.Encoding.Default); + } + + #endregion + + #region 使用 给定密钥字符串 加密/解密string + /// + /// 使用给定密钥字符串加密string + /// + /// 原始文字 + /// 密钥 + /// 字符编码方案 + /// 密文 + public static string Encrypt(string original, string key) + { + byte[] buff = System.Text.Encoding.Default.GetBytes(original); + byte[] kb = System.Text.Encoding.Default.GetBytes(key); + return Convert.ToBase64String(Encrypt(buff, kb)); + } + /// + /// 使用给定密钥字符串解密string + /// + /// 密文 + /// 密钥 + /// 明文 + public static string Decrypt(string original, string key) + { + return Decrypt(original, key, System.Text.Encoding.Default); + } + + /// + /// 使用给定密钥字符串解密string,返回指定编码方式明文 + /// + /// 密文 + /// 密钥 + /// 字符编码方案 + /// 明文 + public static string Decrypt(string encrypted, string key, Encoding encoding) + { + byte[] buff = Convert.FromBase64String(encrypted); + byte[] kb = System.Text.Encoding.Default.GetBytes(key); + return encoding.GetString(Decrypt(buff, kb)); + } + #endregion + + #region 使用 缺省密钥字符串 加密/解密/byte[] + /// + /// 使用缺省密钥字符串解密byte[] + /// + /// 密文 + /// 密钥 + /// 明文 + public static byte[] Decrypt(byte[] encrypted) + { + byte[] key = System.Text.Encoding.Default.GetBytes("%FSxh#s&A!Csd"); + return Decrypt(encrypted, key); + } + /// + /// 使用缺省密钥字符串加密 + /// + /// 原始数据 + /// 密钥 + /// 密文 + public static byte[] Encrypt(byte[] original) + { + byte[] key = System.Text.Encoding.Default.GetBytes("%FSxh#s&A!Csd"); + return Encrypt(original, key); + } + #endregion + + #region 使用 给定密钥 加密/解密/byte[] + + /// + /// 生成MD5摘要 + /// + /// 数据源 + /// 摘要 + public static byte[] MakeMD5(byte[] original) + { + MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider(); + byte[] keyhash = hashmd5.ComputeHash(original); + hashmd5 = null; + return keyhash; + } + + + /// + /// 使用给定密钥加密 + /// + /// 明文 + /// 密钥 + /// 密文 + public static byte[] Encrypt(byte[] original, byte[] key) + { + TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); + des.Key = MakeMD5(key); + des.Mode = CipherMode.ECB; + + return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length); + } + + /// + /// 使用给定密钥解密数据 + /// + /// 密文 + /// 密钥 + /// 明文 + public static byte[] Decrypt(byte[] encrypted, byte[] key) + { + TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); + des.Key = MakeMD5(key); + des.Mode = CipherMode.ECB; + + return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length); + } + + #endregion + + + + + } +} \ No newline at end of file diff --git a/WebService/Properties/AssemblyInfo.cs b/WebService/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9f99976 --- /dev/null +++ b/WebService/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的常规信息通过下列特性集 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("WebService")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("WebService")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +// 对 COM 组件不可见。如果需要 +// 从 COM 访问此程序集中的某个类型,请针对该类型将 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于 typelib 的 ID +[assembly: Guid("612fa92d-3a80-4e83-98ce-383533a0bfc6")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 内部版本号 +// 修订版本 +// +// 可以指定所有值,也可以使用“修订号”和“内部版本号”的默认值, +// 方法是按如下所示使用 "*": +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/WebService/Properties/PublishProfiles/FolderProfile.pubxml b/WebService/Properties/PublishProfiles/FolderProfile.pubxml new file mode 100644 index 0000000..ebb59d1 --- /dev/null +++ b/WebService/Properties/PublishProfiles/FolderProfile.pubxml @@ -0,0 +1,16 @@ + + + + + False + False + True + Release + Any CPU + FileSystem + E:\发布 + FileSystem + + \ No newline at end of file diff --git a/WebService/Web.Debug.config b/WebService/Web.Debug.config new file mode 100644 index 0000000..b9a9fde --- /dev/null +++ b/WebService/Web.Debug.config @@ -0,0 +1,31 @@ + + + + + + + + + + \ No newline at end of file diff --git a/WebService/Web.Release.config b/WebService/Web.Release.config new file mode 100644 index 0000000..755e745 --- /dev/null +++ b/WebService/Web.Release.config @@ -0,0 +1,32 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/WebService/Web.config b/WebService/Web.config new file mode 100644 index 0000000..f1140c9 --- /dev/null +++ b/WebService/Web.config @@ -0,0 +1,55 @@ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WebService/WebService.asmx b/WebService/WebService.asmx new file mode 100644 index 0000000..8eea6a3 --- /dev/null +++ b/WebService/WebService.asmx @@ -0,0 +1 @@ +<%@ WebService Language="C#" CodeBehind="WebService.asmx.cs" Class="WebService.WebService" %> diff --git a/WebService/WebService.asmx.cs b/WebService/WebService.asmx.cs new file mode 100644 index 0000000..8fd3325 --- /dev/null +++ b/WebService/WebService.asmx.cs @@ -0,0 +1,98 @@ +using CK.SCP.Models; +using CK.SCP.Models.AppBoxEntity; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Services; + +namespace WebService +{ + /// + /// WebService 的摘要说明 + /// + [WebService(Namespace = "http://tempuri.org/")] + [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] + [System.ComponentModel.ToolboxItem(false)] + // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 + // [System.Web.Script.Services.ScriptService] + public class WebService : System.Web.Services.WebService + { + + [WebMethod] + public string HelloWorld() + { + return "Hello World"; + } + [WebMethod(Description = "登录", EnableSession = true)] + public string GetTokenByUsername(string username) + { + string clientIp = Context.Request.UserHostAddress; + string token = ""; + using (AppBoxContext _appdb = EntitiesFactory.CreateAppBoxInstance()) + { + var user = _appdb.Users.FirstOrDefault(r => r.Name == username); + if (user != null) + { + var usertoken = _appdb.UserTokens.FirstOrDefault(r => r.UserName == username); + token = Guid.NewGuid().ToString(); + if (usertoken == null) + { + UserToken item = new UserToken(); + item.Token = token; + item.UserName = username; + item.CreateTime = DateTime.Now; + item.CreateUser = clientIp; + _appdb.UserTokens.Add(item); + } + else + { + usertoken.Token = token; + usertoken.UserName = username; + usertoken.UpdateTime = DateTime.Now; + usertoken.UpdateUser = clientIp; + } + EntitiesFactory.SaveDb(_appdb); + //Context.Session.Add(username, token); + token = Encryption64.Encrypt(token, DateTime.Now.ToString("yyyyMMdd")); + } + else + { + token = "此用户名无效!"; + } + } + return token; + } + //[WebMethod(Description = "获取用户名", EnableSession = true)] + //public string LoginByToken(string username, string token) + //{ + // string clientIp = Context.Request.UserHostAddress; + // string mseesge = "失败"; + // try + // { + // if (Context.Session[username].ToString() == token) + // { + // using (AppBoxContext _appdb = EntitiesFactory.CreateAppBoxInstance()) + // { + // var user = _appdb.Users.FirstOrDefault(r => r.Name == username); + // string domin = "JZ1"; + // mseesge = "成功"; + + // // Context.Response.Redirect(FormsAuthentication.LoginUrl + "?t=" + username+ "&f="+ domin); + // Context.Response.Redirect("https://www.baidu.com/", true); + // } + // } + // else + // { + // mseesge = "令牌不对"; + // } + // } + // catch + // { + + // mseesge = "令牌不对"; + // } + // return mseesge; + //} + } +} diff --git a/WebService/WebService.csproj b/WebService/WebService.csproj new file mode 100644 index 0000000..151cfb7 --- /dev/null +++ b/WebService/WebService.csproj @@ -0,0 +1,140 @@ + + + + + Debug + AnyCPU + + + 2.0 + {612FA92D-3A80-4E83-98CE-383533A0BFC6} + {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Library + Properties + WebService + WebService + v4.5.2 + true + + 44315 + + + + + + + + + + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + true + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll + + + ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + + + + + + + + + + ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll + + + + + + + + + + + WebService.asmx + Component + + + + + + Web.config + + + Web.config + + + + + {74DCE5F2-A501-45F2-B4F9-494AA1867226} + CK.SCP.Models + + + + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + + + + + + True + True + 51432 + / + https://localhost:44315/ + False + False + + + False + + + + + + + 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。 + + + + + \ No newline at end of file diff --git a/WebService/packages.config b/WebService/packages.config new file mode 100644 index 0000000..0766771 --- /dev/null +++ b/WebService/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file

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%0AVskjdnqFGmdmkr;d(p`CC>+2do9ETr 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⪙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�^nH;^H)U(O}kG0`_zdixRyYUHB}9q(4VA$ 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∈81+X9=cBG^?>)cEu^_=xi!pgUo^}Yccnw(R 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 ha>R_e`H8d1gU$@Z->S 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