private void UpdateVariantRecord(ReleasedProductVariant v)
        {
            // update customer
            ReleasedProductVariant m;

            var query = from entity in context.ReleasedProductVariants
                        where entity.ProductMasterNumber == v.ProductMasterNumber && entity.ProductSizeId == v.ProductSizeId &&
                        entity.ProductColorId == v.ProductColorId && entity.ProductStyleId == v.ProductStyleId &&
                        entity.ProductConfigurationId == v.ProductConfigurationId
                        select entity;

            var ie = query.GetEnumerator();

            ie.MoveNext();

            m = ie.Current;

            // use tracned entity to only update change fields
            context.TrackEntityInstance(m);

            //m.RetailProductCategoryName = master.RetailProductCategoryName;
            m.ProductLifecycleStateId = v.ProductLifecycleStateId;

            logMessageHandler(string.Format("Update Variant '{0}', to plc state = {1}", m.ProductVariantNumber, m.ProductLifecycleStateId));
        }
        public static ReleasedProductVariant CreateReleasedProductVariant(string dataAreaId,
                                                                          string productMasterNumber,
                                                                          string productConfigurationId,
                                                                          string productSizeId,
                                                                          string productColorId,
                                                                          string productStyleId,
                                                                          global::Microsoft.Dynamics.DataEntities.ReleasedProductMaster releasedProductMaster,
                                                                          global::Microsoft.Dynamics.DataEntities.ReleasedProductMasterV2 releasedProductMasterV2,
                                                                          global::Microsoft.Dynamics.DataEntities.ProductMaster productMaster,
                                                                          global::Microsoft.Dynamics.DataEntities.ProductVariant productVariant)
        {
            ReleasedProductVariant releasedProductVariant = new ReleasedProductVariant();

            releasedProductVariant.dataAreaId             = dataAreaId;
            releasedProductVariant.ProductMasterNumber    = productMasterNumber;
            releasedProductVariant.ProductConfigurationId = productConfigurationId;
            releasedProductVariant.ProductSizeId          = productSizeId;
            releasedProductVariant.ProductColorId         = productColorId;
            releasedProductVariant.ProductStyleId         = productStyleId;
            if ((releasedProductMaster == null))
            {
                throw new global::System.ArgumentNullException("releasedProductMaster");
            }
            releasedProductVariant.ReleasedProductMaster = releasedProductMaster;
            if ((releasedProductMasterV2 == null))
            {
                throw new global::System.ArgumentNullException("releasedProductMasterV2");
            }
            releasedProductVariant.ReleasedProductMasterV2 = releasedProductMasterV2;
            if ((productMaster == null))
            {
                throw new global::System.ArgumentNullException("productMaster");
            }
            releasedProductVariant.ProductMaster = productMaster;
            if ((productVariant == null))
            {
                throw new global::System.ArgumentNullException("productVariant");
            }
            releasedProductVariant.ProductVariant = productVariant;
            return(releasedProductVariant);
        }
        private ReleasedProductVariant GetRecord(ReleasedProductVariant v)
        {
            var query = from entity in this.context.ReleasedProductVariants
                        where entity.ProductMasterNumber == v.ProductMasterNumber &&
                        entity.ProductSizeId == v.ProductSizeId &&
                        entity.ProductColorId == v.ProductColorId &&
                        entity.ProductStyleId == v.ProductStyleId &&
                        entity.ProductConfigurationId == v.ProductConfigurationId
                        select entity;

            if (query.Count() == 0)
            {
                return(null);
            }
            else if (query.Count() == 1)
            {
                return(query.First());
            }
            else
            {
                throw new Exception("The input parameters did return multiple variants, should only return one.");
            }
        }
        private bool RecordExsits(ReleasedProductVariant v)
        {
            var entity = GetRecord(v);

            return(entity != null);
        }
Пример #5
0
        /// <summary>
        ///
        /// </summary>
        public void CreateItemTest()
        {
            var rand = new Random();
            var dp   = new DistinctProduct();

            dp.NMFCCode    = "";
            dp.ProductType = EcoResProductType.Item;
            dp.STCCCode    = "";
            dp.StorageDimensionGroupName  = "";
            dp.ProductNumber              = "AGRPOC11";
            dp.IsCatchWeightProduct       = NoYes.No;
            dp.ProductDescription         = "";
            dp.RetailProductCategoryName  = "";
            dp.TrackingDimensionGroupName = "None";
            dp.ProductSearchName          = "AGRProf11";
            dp.ProductName          = dp.ProductSearchName;
            dp.HarmonizedSystemCode = "";

            #region Released Distinct Product
            ReleasedDistinctProductsWriteDTO rdp = new ReleasedDistinctProductsWriteDTO();
            rdp.AlternativeItemNumber                       = "";
            rdp.AlternativeProductColorId                   = "";
            rdp.AlternativeProductConfigurationId           = "";
            rdp.AlternativeProductSizeId                    = "";
            rdp.AlternativeProductStyleId                   = "";
            rdp.AlternativeProductUsageCondition            = ItemNumAlternative.Never;
            rdp.ApprovedVendorCheckMethod                   = PdsVendorCheckItem.NoCheck;
            rdp.ApproximateSalesTaxPercentage               = 0m;
            rdp.AreTransportationManagementProcessesEnabled = NoYes.No;
            rdp.ArrivalHandlingTime             = 0;
            rdp.BarcodeSetupId                  = "";
            rdp.BaseSalesPriceSource            = SalesPriceModelBasic.PurchPrice;
            rdp.BatchMergeDateCalculationMethod = InventBatchMergeDateCalculationMethod.Manual;
            rdp.BatchNumberGroupCode            = "";
            rdp.BestBeforePeriodDays            = 0;
            rdp.BOMUnitSymbol                 = "";
            rdp.BuyerGroupId                  = "";
            rdp.CarryingCostABCCode           = ABC.None;
            rdp.CatchWeightUnitSymbol         = "";
            rdp.CommissionProductGroupId      = "";
            rdp.ComparisonPriceBaseUnitSymbol = "";
            rdp.ConstantScrapQuantity         = 0m;
            rdp.ContinuityEventDuration       = 0;
            rdp.ContinuityScheduleId          = "";
            rdp.CostCalculationGroupId        = "";
            rdp.CostChargesQuantity           = 0m;
            rdp.CostGroupId = "";
            //rdp.DataAreaId = "usrt";
            rdp.DefaultDirectDeliveryWarehouse     = "";
            rdp.DefaultLedgerDimensionDisplayValue = "006--";
            rdp.DefaultOrderType          = ReqPOType.Purch;
            rdp.DefaultReceivingQuantity  = 0m;
            rdp.FixedCostCharges          = 0m;
            rdp.FixedPurchasePriceCharges = 0m;
            rdp.FixedSalesPriceCharges    = 0m;
            rdp.FlushingPrinciple         = ProdFlushingPrincipItem.Start;
            rdp.FreightAllocationGroupId  = "";
            rdp.GrossDepth                = 0m;
            rdp.GrossProductHeight        = 0m;
            rdp.GrossProductWidth         = 0m;
            rdp.IntrastatChargePercentage = 0m;
            rdp.IntrastatCommodityCode    = "";
            //rdp.InventoryGSTReliefCategoryCode = "";
            rdp.InventoryReservationHierarchyName = "";
            rdp.InventoryUnitSymbol = "EA";
            rdp.IsDeliveredDirectly = NoYes.No;
            rdp.IsDiscountPOSRegistrationProhibited = NoYes.No;
            rdp.IsExemptFromAutomaticNotificationAndCancellation = NoYes.No;
            rdp.IsICMSTaxAppliedOnService          = NoYes.No;
            rdp.IsInstallmentEligible              = NoYes.No;
            rdp.IsIntercompanyPurchaseUsageBlocked = NoYes.No;
            rdp.IsIntercompanySalesUsageBlocked    = NoYes.No;
            rdp.IsPhantom = NoYes.No;
            rdp.IsPOSRegistrationBlocked            = NoYes.No;
            rdp.IsPOSRegistrationQuantityNegative   = NoYes.No;
            rdp.IsPurchasePriceAutomaticallyUpdated = NoYes.No;
            rdp.IsPurchasePriceIncludingCharges     = NoYes.No;
            rdp.IsPurchaseWithholdingTaxCalculated  = NoYes.No;
            rdp.IsRestrictedForCoupons          = NoYes.No;
            rdp.IsSalesPriceAdjustmentAllowed   = NoYes.No;
            rdp.IsSalesPriceIncludingCharges    = NoYes.No;
            rdp.IsSalesWithholdingTaxCalculated = NoYes.No;
            rdp.IsScaleProduct                        = NoYes.No;
            rdp.IsShipAloneEnabled                    = NoYes.No;
            rdp.IsUnitCostAutomaticallyUpdated        = NoYes.No;
            rdp.IsUnitCostIncludingCharges            = NoYes.No;
            rdp.IsVariantShelfLabelsPrintingEnabled   = NoYes.No;
            rdp.IsZeroPricePOSRegistrationAllowed     = NoYes.No;
            rdp.ItemFiscalClassificationCode          = "";
            rdp.ItemFiscalClassificationExceptionCode = "";
            rdp.ItemModelGroupId                      = "MOV_AVG";
            rdp.ItemNumber = dp.ProductNumber;
            rdp.KeyInPriceRequirementsAtPOSRegister    = RetailPriceKeyingRequirement.NotMandatory;
            rdp.KeyInQuantityRequirementsAtPOSRegister = RetailQtyKeyingRequirement.NotMandatory;
            rdp.MarginABCCode = ABC.None;
            rdp.MaximumCatchWeightQuantity    = 0m;
            rdp.MaximumPickQuantity           = 0m;
            rdp.MinimumCatchWeightQuantity    = 0m;
            rdp.MustKeyInCommentAtPOSRegister = NoYes.No;
            rdp.NecessaryProductionWorkingTimeSchedulingPropertyId = "";
            rdp.NetProductWeight                             = 0m;
            rdp.NGPCode                                      = 0;
            rdp.OriginCountryRegionId                        = "";
            rdp.OriginStateId                                = "";
            rdp.PackageClassId                               = "";
            rdp.PackageHandlingTime                          = 0;
            rdp.PackingDutyQuantity                          = 0m;
            rdp.PackingMaterialGroupId                       = "";
            rdp.PackSizeCategoryId                           = "";
            rdp.PhysicalDimensionGroupId                     = "";
            rdp.PlanningFormulaItemNumber                    = "";
            rdp.POSRegistrationActivationDate                = new DateTimeOffset(new DateTime(1900, 1, 1, 0, 0, 0));
            rdp.POSRegistrationBlockedDate                   = new DateTimeOffset(new DateTime(1900, 1, 1, 0, 0, 0));
            rdp.POSRegistrationPlannedBlockedDate            = new DateTimeOffset(new DateTime(1900, 1, 1, 0, 0, 0));
            rdp.PotencyBaseAttibuteTargetValue               = 0m;
            rdp.PotencyBaseAttributeId                       = "";
            rdp.PotencyBaseAttributeValueEntryEvent          = PDSPotencyAttribRecordingEnum.PurchProdReceipt;
            rdp.PrimaryVendorAccountNumber                   = "1004";
            rdp.ProductCoverageGroupId                       = "";
            rdp.ProductFiscalInformationType                 = "";
            rdp.ProductGroupId                               = "ActionSpor";
            rdp.ProductionConsumptionDensityConversionFactor = 0m;
            rdp.ProductionConsumptionDepthConversionFactor   = 0m;
            rdp.ProductionConsumptionHeightConversionFactor  = 0m;
            rdp.ProductionConsumptionWidthConversionFactor   = 0m;
            rdp.ProductionGroupId                            = "";
            rdp.ProductionPoolId                             = "";
            rdp.ProductionType                               = PmfProductType.None;
            rdp.ProductLifeCycleSeasonCode                   = "";
            rdp.ProductLifeCycleValidFromDate                = new DateTimeOffset(new DateTime(1900, 1, 1, 0, 0, 0));
            rdp.ProductLifeCycleValidToDate                  = new DateTimeOffset(new DateTime(1900, 1, 1, 0, 0, 0));
            rdp.ProductNumber                                = dp.ProductNumber;
            rdp.ProductTaxationOrigin                        = FITaxationOrigin_BR.National;
            rdp.ProductVolume                                = 0m;
            rdp.ProjectCategoryId                            = "";
            rdp.PurchaseChargeProductGroupId                 = "";
            rdp.PurchaseChargesQuantity                      = 0m;
            //rdp.PurchaseGSTReliefCategoryCode = "";
            rdp.PurchaseItemWithholdingTaxGroupCode       = "";
            rdp.PurchaseLineDiscountProductGroupCode      = "";
            rdp.PurchaseMultilineDiscountProductGroupCode = "";
            rdp.PurchaseOverdeliveryPercentage            = 0m;
            rdp.PurchasePrice                 = 12.44m;
            rdp.PurchasePriceDate             = new DateTimeOffset(DateTime.Now);
            rdp.PurchasePriceQuantity         = 1m;
            rdp.PurchasePriceToleranceGroupId = "";
            rdp.PurchasePricingPrecision      = 0;
            rdp.PurchaseRebateProductGroupId  = "";
            rdp.PurchaseSalesTaxItemGroupCode = "RP";
            rdp.PurchaseSupplementaryProductProductGroupId = "";
            rdp.PurchaseUnderdeliveryPercentage            = 0m;
            rdp.PurchaseUnitSymbol          = "EA";
            rdp.RawMaterialPickingPrinciple = WHSAllowMaterialOverPick.Staging;
            rdp.RevenueABCCode            = ABC.None;
            rdp.SalesChargeProductGroupId = "";
            rdp.SalesChargesQuantity      = 0m;
            //rdp.SalesGSTReliefCategoryCode = null; // cannot insert for the given value
            rdp.SalesItemWithholdingTaxGroupCode       = "";
            rdp.SalesLineDiscountProductGroupCode      = "";
            rdp.SalesMultilineDiscountProductGroupCode = "";
            rdp.SalesOverdeliveryPercentage            = 0m;
            rdp.SalesPrice = 24m;
            rdp.SalesPriceCalculationChargesPercentage = 0m;
            rdp.SalesPriceCalculationContributionRatio = 0m;
            rdp.SalesPriceCalculationModel             = SalesPriceModel.PercentMarkup;
            rdp.SalesPriceDate             = new DateTimeOffset(DateTime.Now);
            rdp.SalesPriceQuantity         = 1m;
            rdp.SalesPricingPrecision      = 0;
            rdp.SalesRebateProductGroupId  = "";
            rdp.SalesSalesTaxItemGroupCode = "";
            rdp.SalesSupplementaryProductProductGroupId = "";
            rdp.SalesUnderdeliveryPercentage            = 0m;
            rdp.SalesUnitSymbol                      = "Ea";
            rdp.SearchName                           = dp.ProductName;
            rdp.SellEndDate                          = new DateTimeOffset(DateTime.Now.AddMonths(12));
            rdp.SellStartDate                        = new DateTimeOffset(DateTime.Now.AddMonths(-12));
            rdp.SerialNumberGroupCode                = "";
            rdp.ServiceFiscalInformationCode         = "";
            rdp.ShelfAdvicePeriodDays                = 0;
            rdp.ShelfLifePeriodDays                  = 0;
            rdp.ShippingAndReceivingSortOrderCode    = 0;
            rdp.ShipStartDate                        = new DateTimeOffset(DateTime.Now);
            rdp.StorageDimensionGroupName            = "SiteWH";
            rdp.TareProductWeight                    = 0m;
            rdp.TrackingDimensionGroupName           = "None";
            rdp.TransferOrderOverdeliveryPercentage  = 0m;
            rdp.TransferOrderUnderdeliveryPercentage = 0m;
            rdp.UnitConversionSequenceGroupId        = "";
            rdp.UnitCost                                           = 11m;
            rdp.UnitCostDate                                       = new DateTimeOffset(DateTime.Now);
            rdp.UnitCostQuantity                                   = 1;
            rdp.ValueABCCode                                       = ABC.None;
            rdp.VariableScrapPercentage                            = 0m;
            rdp.VendorInvoiceLineMatchingPolicy                    = PurchMatchingPolicyWithNotSetOption.NotSet;
            rdp.WarehouseMobileDeviceDescriptionLine1              = "";
            rdp.WarehouseMobileDeviceDescriptionLine2              = "";
            rdp.WillInventoryIssueAutomaticallyReportAsFinished    = NoYes.No;
            rdp.WillInventoryReceiptIgnoreFlushingPrinciple        = NoYes.No;
            rdp.WillPickingWorkbenchApplyBoxingLogic               = NoYes.No;
            rdp.WillTotalPurchaseDiscountCalculationIncludeProduct = NoYes.No;
            rdp.WillTotalSalesDiscountCalculationIncludeProduct    = NoYes.No;
            rdp.WillWorkCenterPickingAllowNegativeInventory        = NoYes.No;
            rdp.YieldPercentage                                    = 0m;
            #endregion
            //ProductColorGroup
            var master = new ProductMasterWriteDTO();
            master.AreIdenticalConfigurationsAllowed = NoYes.No;
            master.HarmonizedSystemCode = "";
            master.IsAutomaticVariantGenerationEnabled = NoYes.Yes;
            master.IsCatchWeightProduct = NoYes.No;
            master.IsProductKit         = NoYes.No;
            master.IsProductVariantUnitConversionEnabled = NoYes.No;
            //master.KPMInstructionGroupId = "";
            //master.KRFColorRatioCurve = "";
            //master.KRFSizeRatioCurve = "";
            //master.KRFStyleRatioCurve = "";
            //master.KRFUseRatioCurves = NoYes.Yes;
            master.NMFCCode            = "";
            master.ProductColorGroupId = "Basic";
            master.ProductDescription  = "";
            //master.ProductDimensionGroupName = "CSF";
            master.ProductDimensionGroupName = "SizeCol";
            master.ProductName                    = dp.ProductName;
            master.ProductNumber                  = dp.ProductNumber;
            master.ProductSearchName              = dp.ProductSearchName;
            master.ProductSizeGroupId             = "10-18";
            master.ProductStyleGroupId            = "";
            master.VariantConfigurationTechnology = EcoResVariantConfigurationTechnologyType.PredefinedVariants;
            master.RetailProductCategoryName      = "";
            master.ProductType                    = EcoResProductType.Item;
            master.STCCCode = "";
            master.TrackingDimensionGroupName = "None";
            master.StorageDimensionGroupName  = "Ware";


            var rpm = new ReleasedProductMasterWriteDTO();
            rpm.TransferOrderOverdeliveryPercentage = 0;
            rpm.SalesUnitSymbol = "Ea";
            rpm.ProductionConsumptionWidthConversionFactor = 0;
            //rpm.BOMLevel =  0;
            rpm.IsPurchasePriceAutomaticallyUpdated  = NoYes.No;
            rpm.IsPurchaseWithholdingTaxCalculated   = NoYes.No;
            rpm.TransferOrderUnderdeliveryPercentage = 0;
            rpm.IsDeliveredDirectly = NoYes.No;
            rpm.SalesSupplementaryProductProductGroupId            = "";
            rpm.SalesMultilineDiscountProductGroupCode             = "";
            rpm.WillTotalPurchaseDiscountCalculationIncludeProduct = NoYes.Yes;
            rpm.IsVariantShelfLabelsPrintingEnabled = NoYes.No;
            rpm.ProductionGroupId = "";
            rpm.OriginStateId     = "";
            rpm.RevenueABCCode    = ABC.None;
            rpm.NecessaryProductionWorkingTimeSchedulingPropertyId = "";
            rpm.IntrastatCommodityCode    = "";
            rpm.SalesRebateProductGroupId = "";
            rpm.UnitCostDate                     = new DateTimeOffset(new DateTime(2012, 10, 6, 12, 0, 0, 0));
            rpm.DefaultProductSizeId             = "";
            rpm.AlternativeProductStyleId        = "";
            rpm.PotencyBaseAttributeId           = "";
            rpm.AlternativeProductUsageCondition = ItemNumAlternative.Never;
            rpm.PurchaseUnderdeliveryPercentage  = 0;
            rpm.DefaultProductStyleId            = "";
            rpm.AlternativeProductSizeId         = "";
            rpm.WillInventoryIssueAutomaticallyReportAsFinished = NoYes.No;
            rpm.ProductVolume                 = 0;
            rpm.TareProductWeight             = 0;
            rpm.ItemNumber                    = master.ProductNumber;
            rpm.IsPhantom                     = NoYes.No;
            rpm.DefaultProductConfigurationId = "";
            rpm.FlushingPrinciple             = ProdFlushingPrincipItem.Start;
            rpm.VariableScrapPercentage       = 0;
            rpm.ArrivalHandlingTime           = 0;
            rpm.SearchName                    = master.ProductSearchName;
            rpm.IsUnitCostIncludingCharges    = NoYes.No;
            rpm.AlternativeProductColorId     = "";
            rpm.PhysicalDimensionGroupId      = "";
            rpm.MinimumCatchWeightQuantity    = 0;
            rpm.SalesChargeProductGroupId     = "";
            //rpm.ProductSearchName =  master.ProductSearchName;
            rpm.WillPickingWorkbenchApplyBoxingLogic  = NoYes.No;
            rpm.ItemFiscalClassificationExceptionCode = "";
            rpm.InventoryReservationHierarchyName     = "";
            rpm.IsZeroPricePOSRegistrationAllowed     = NoYes.No;
            rpm.IntrastatChargePercentage             = 0;
            rpm.IsScaleProduct                  = NoYes.No;
            rpm.PlanningFormulaItemNumber       = "";
            rpm.ProductFiscalInformationType    = "";
            rpm.StorageDimensionGroupName       = "Ware";
            rpm.ShelfAdvicePeriodDays           = 0;
            rpm.ContinuityScheduleId            = "";
            rpm.VendorInvoiceLineMatchingPolicy = PurchMatchingPolicyWithNotSetOption.NotSet;
            //rpm.InventoryGSTReliefCategoryCode = "";
            rpm.MustKeyInCommentAtPOSRegister = NoYes.No;
            rpm.SalesPriceQuantity            = 1;
            rpm.ServiceFiscalInformationCode  = "";
            rpm.BarcodeSetupId = "";
            rpm.IsUnitCostAutomaticallyUpdated = NoYes.No;
            rpm.PotencyBaseAttibuteTargetValue = 0;
            rpm.DefaultReceivingQuantity       = 0;
            rpm.ProductionConsumptionDensityConversionFactor = 0;
            rpm.PurchaseItemWithholdingTaxGroupCode          = "";
            rpm.PurchasePricingPrecision = 0;
            rpm.UnitCostQuantity         = 1;
            rpm.IsRestrictedForCoupons   = NoYes.No;
            rpm.SellStartDate            = new DateTimeOffset(new DateTime(1900, 1, 1, 12, 0, 0, 0));
            rpm.SellEndDate                       = new DateTimeOffset(new DateTime(1900, 1, 1, 12, 0, 0, 0));
            rpm.ConstantScrapQuantity             = 0;
            rpm.BatchNumberGroupCode              = "";
            rpm.CostCalculationGroupId            = "";
            rpm.PackingDutyQuantity               = 0;
            rpm.AlternativeProductConfigurationId = "";
            rpm.SalesPrice                   = 19.99m;
            rpm.DefaultProductColorId        = "";
            rpm.IsSalesPriceIncludingCharges = NoYes.No;
            rpm.ProductionType               = PmfProductType.None;
            rpm.WillTotalSalesDiscountCalculationIncludeProduct = NoYes.Yes;
            rpm.PotencyBaseAttributeValueEntryEvent             = PDSPotencyAttribRecordingEnum.PurchProdReceipt;
            rpm.ItemModelGroupId = "MOV_AVG";
            rpm.PurchaseMultilineDiscountProductGroupCode = "";
            //rpm.DynamicsConnectorIntegrationKey = Guid.Empty;
            rpm.SalesChargesQuantity = 0;
            rpm.SalesPriceCalculationContributionRatio = 0;
            //rpm.ProductGroupId = "Apparel";
            rpm.IsSalesPriceAdjustmentAllowed          = NoYes.No;
            rpm.SalesPriceCalculationChargesPercentage = 0;
            rpm.ShippingAndReceivingSortOrderCode      = 0;
            rpm.GrossProductHeight            = 0;
            rpm.ProductLifeCycleValidFromDate = new DateTimeOffset(new DateTime(1900, 1, 1, 12, 0, 0, 0));
            //rpm.PurchaseGSTReliefCategoryCode = "";
            rpm.POSRegistrationPlannedBlockedDate    = new DateTimeOffset(new DateTime(1900, 1, 1, 12, 0, 0, 0));
            rpm.SalesItemWithholdingTaxGroupCode     = "";
            rpm.PurchaseLineDiscountProductGroupCode = "";
            rpm.PurchasePriceDate = new DateTimeOffset(new DateTime(2012, 10, 6, 12, 0, 0, 0));
            rpm.IsIntercompanyPurchaseUsageBlocked = NoYes.No;
            rpm.NGPCode                       = 0;
            rpm.ShelfLifePeriodDays           = 0;
            rpm.UnitConversionSequenceGroupId = "";
            rpm.ProductionConsumptionHeightConversionFactor = 0;
            rpm.BOMUnitSymbol = "";
            rpm.MaximumCatchWeightQuantity = 0;
            rpm.PurchasePriceQuantity      = 1;
            rpm.PurchasePrice = 11.994m;
            rpm.ProductLifeCycleSeasonCode          = "";
            rpm.IsDiscountPOSRegistrationProhibited = NoYes.No;
            rpm.ProductLifeCycleValidToDate         = new DateTimeOffset(new DateTime(1900, 1, 1, 12, 0, 0, 0));
            rpm.PurchaseOverdeliveryPercentage      = 0;
            rpm.TrackingDimensionGroupName          = "None";
            rpm.FixedSalesPriceCharges = 0;
            rpm.ProductTaxationOrigin  = FITaxationOrigin_BR.National;
            rpm.ProductionPoolId       = "";
            rpm.ValueABCCode           = ABC.None;
            rpm.PurchaseUnitSymbol     = "Ea";
            rpm.PurchaseSupplementaryProductProductGroupId = "";
            rpm.AlternativeItemNumber = "";
            //rpm.SalesSalesTaxItemGroupCode = "RP";
            rpm.ProductCoverageGroupId          = "";
            rpm.CostGroupId                     = "";
            rpm.IsPurchasePriceIncludingCharges = NoYes.No;
            rpm.IsShipAloneEnabled              = NoYes.No;
            rpm.ProductNumber                   = master.ProductNumber;
            rpm.RawMaterialPickingPrinciple     = WHSAllowMaterialOverPick.Staging;
            rpm.FixedPurchasePriceCharges       = 0;
            rpm.FreightAllocationGroupId        = "";
            rpm.ContinuityEventDuration         = 0;
            //rpm.PurchaseSalesTaxItemGroupCode = "RP";
            rpm.DefaultDirectDeliveryWarehouse = "";
            //rpm.SalesGSTReliefCategoryCode = "";
            rpm.SalesPriceDate                    = new DateTimeOffset(new DateTime(2012, 10, 6, 12, 0, 0, 0));
            rpm.OriginCountryRegionId             = "";
            rpm.DefaultOrderType                  = ReqPOType.Purch;
            rpm.IsPOSRegistrationQuantityNegative = NoYes.No;
            rpm.PurchaseChargesQuantity           = 0;
            //rpm.PrimaryVendorAccountNumber = "1004";
            rpm.MaximumPickQuantity                    = 0;
            rpm.SalesUnderdeliveryPercentage           = 0;
            rpm.IsInstallmentEligible                  = NoYes.No;
            rpm.KeyInQuantityRequirementsAtPOSRegister = RetailQtyKeyingRequirement.NotMandatory;
            rpm.CommissionProductGroupId               = "";
            rpm.IsIntercompanySalesUsageBlocked        = NoYes.No;
            rpm.YieldPercentage                 = 0;
            rpm.BaseSalesPriceSource            = SalesPriceModelBasic.PurchPrice;
            rpm.IsSalesWithholdingTaxCalculated = NoYes.No;
            rpm.ApprovedVendorCheckMethod       = PdsVendorCheckItem.NoCheck;
            rpm.BestBeforePeriodDays            = 0;
            rpm.GrossDepth = 0;
            rpm.PurchaseRebateProductGroupId = "";
            rpm.PackSizeCategoryId           = "";
            rpm.PackageClassId                                   = "";
            rpm.FixedCostCharges                                 = 0;
            rpm.UnitCost                                         = 11.994m;
            rpm.SerialNumberGroupCode                            = "";
            rpm.CarryingCostABCCode                              = ABC.None;
            rpm.SalesLineDiscountProductGroupCode                = "";
            rpm.IsPOSRegistrationBlocked                         = NoYes.No;
            rpm.POSRegistrationBlockedDate                       = new DateTimeOffset(new DateTime(1900, 1, 1, 12, 0, 0, 0));;
            rpm.ProjectCategoryId                                = "";
            rpm.PurchasePriceToleranceGroupId                    = "";
            rpm.AreTransportationManagementProcessesEnabled      = NoYes.Yes;
            rpm.IsExemptFromAutomaticNotificationAndCancellation = NoYes.No;
            rpm.PackingMaterialGroupId                           = "";
            rpm.InventoryUnitSymbol                              = "Ea";
            rpm.ComparisonPriceBaseUnitSymbol                    = "";
            rpm.WillWorkCenterPickingAllowNegativeInventory      = NoYes.No;
            rpm.IsICMSTaxAppliedOnService                        = NoYes.No;
            //rpm.ProductType = EcoResProductType.Item;
            rpm.KeyInPriceRequirementsAtPOSRegister         = RetailPriceKeyingRequirement.NotMandatory;
            rpm.ApproximateSalesTaxPercentage               = 0;
            rpm.POSRegistrationActivationDate               = new DateTimeOffset(new DateTime(1900, 1, 1, 12, 0, 0, 0));;
            rpm.WillInventoryReceiptIgnoreFlushingPrinciple = NoYes.No;
            rpm.NetProductWeight                   = 0;
            rpm.CostChargesQuantity                = 0;
            rpm.BatchMergeDateCalculationMethod    = InventBatchMergeDateCalculationMethod.Manual;
            rpm.SalesPriceCalculationModel         = SalesPriceModel.None;
            rpm.PurchaseChargeProductGroupId       = "";
            rpm.SalesOverdeliveryPercentage        = 0;
            rpm.DefaultLedgerDimensionDisplayValue = "006--";
            rpm.SalesPricingPrecision              = 0;
            rpm.MarginABCCode         = ABC.None;
            rpm.CatchWeightUnitSymbol = "";
            rpm.WarehouseMobileDeviceDescriptionLine1      = "";
            rpm.WarehouseMobileDeviceDescriptionLine2      = "";
            rpm.ProductionConsumptionDepthConversionFactor = 0;
            rpm.ItemFiscalClassificationCode     = "";
            rpm.PackageHandlingTime              = 0;
            rpm.IsUnitCostProductVariantSpecific = NoYes.No;
            rpm.BuyerGroupId      = "";
            rpm.GrossProductWidth = 0;
            rpm.ShipStartDate     = new DateTimeOffset(new DateTime(1900, 1, 1, 12, 0, 0, 0));

            //var r = AXServiceConnector.CallOdataEndpointPost("ProductMasters", null, header, master).Result;
            var rpmr = AXServiceConnector.CallOdataEndpointPost("ReleasedProductMasters", null, header, rpm);
            //ReleasedProductVariantDTO v = new ReleasedProductVariantDTO();
            ////v.DataAreaId = "usrt";
            //v.ItemNumber = "AGRPOC_176025568";
            //v.ProductColorId = "Black";
            //v.ProductSizeId = "Large";
            //v.ProductConfigurationId = "";
            //v.ProductStyleId = "";
            //v.ProductMasterNumber = "AGRPOC_176025568";

            var v = new ReleasedProductVariantDTO();
            //v.DataAreaId = "usrt";
            v.ItemNumber             = rpm.ItemNumber;
            v.ProductColorId         = "Black";
            v.ProductSizeId          = "10";
            v.ProductConfigurationId = "";
            v.ProductStyleId         = "";
            v.ProductName            = master.ProductName + "_" + v.ProductColorId + "_" + v.ProductSizeId;
            v.ProductSearchName      = v.ProductName;
            v.ProductMasterNumber    = master.ProductNumber;


            var pt = new ProductTranslation {
                LanguageId = "en-us", ProductNumber = master.ProductNumber, ProductName = master.ProductName
            };
            var list = new List <ProductTranslation>();
            list.Add(pt);
            var vv = new ReleasedProductVariant();


            var vars = new List <ReleasedProductVariantDTO>();
            vars.Add(v);

            var rv = AXServiceConnector.CallOdataEndpointPost("ReleasedProductVariants", null, header, v).Result;
        }
Пример #6
0
        public override int UpdateProductLifecycleState(int plcUpdateId, int actionId)
        {
            DateTime startTime = DateTime.Now;

            AxDbHandler.UpdateProductLifeCycleState(plcUpdateId, actionId, 1);
            var plc = AxDbHandler.GetProductLifeCycleStateUpdates(plcUpdateId);

            if (plc.Any())
            {
                var distinctMaster = plc.DistinctBy(x => x.product_no).Select(y => y.product_no);
                foreach (var m in distinctMaster)
                {
                    var    plcPerMaster         = plc.Where(x => x.product_no == m);
                    string masterLifecycleState = "";
                    if (plcPerMaster.Where(x => x.lifecycle_status.ToLower() == "confirmed").Any())
                    {
                        masterLifecycleState = "Confirmed";
                    }
                    else if (plcPerMaster.Count(x => x.lifecycle_status.ToLower() == "delete") == plcPerMaster.Count())
                    {
                        masterLifecycleState = "Delete";
                    }
                    else if (plcPerMaster.Count(x => x.lifecycle_status.ToLower() == "shortlist") == plcPerMaster.Count())
                    {
                        masterLifecycleState = "Shortlist";
                    }
                    else
                    {
                        OnTaskCompleted(this, new ErpTaskCompletedArgs
                        {
                            Exception =
                                new AxBaseException
                            {
                                ApplicationException = new Exception(string.Format("Plc update batch = {0} contains an invalid Product Lifecycle State in D365",
                                                                                   plcPerMaster.First().product_lifecycle_state_update_id))
                            },
                            ActionId = actionId,
                            Status   = 3
                        });
                        return(actionId);
                    }

                    if (plcPerMaster.Any())
                    {
                        var master = new ReleasedProductMaster();
                        master.ProductNumber           = plcPerMaster.First().product_no;
                        master.ProductLifecycleStateId = masterLifecycleState;
                        var erpMaster = CreateMaster(new List <ReleasedProductMaster> {
                            master
                        });

                        if (erpMaster.Exception != null)
                        {
                            DataWriter.LogErpActionStep(actionId, "Item create: write Product Master", startTime, false, erpMaster.Exception.ErrorMessage, erpMaster.Exception.StackTrace, -1);
                            OnTaskCompleted(this, new ErpTaskCompletedArgs {
                                Exception = erpMaster.Exception, ActionId = actionId, Status = 3
                            });
                            return(actionId);
                        }
                        else if (erpMaster.WriteObject.ProductNumber.ToLower().Trim() != plcPerMaster.First().product_no.ToLower().Trim())
                        {
                            DataWriter.LogErpActionStep(actionId, "Item create: write Product Master", startTime, false, null, null, -1);
                            OnTaskCompleted(this, new ErpTaskCompletedArgs
                            {
                                Exception =
                                    new AxBaseException
                                {
                                    ApplicationException = new ApplicationException(
                                        "The product number for Product Master does not match the returned number, AX value = " + erpMaster.WriteObject.ProductNumber + " AGR number = "
                                        + plcPerMaster.First().product_no)
                                },
                                ActionId = actionId,
                                Status   = 3
                            });
                            return(actionId);
                        }

                        DataWriter.LogErpActionStep(actionId, "Item create: write Product Master", startTime, true, null, null, -1);
                        startTime = DateTime.Now;
                    }
                    List <ReleasedProductVariant> variantList = new List <ReleasedProductVariant>();
                    string variantPlc;
                    foreach (var item in plcPerMaster)
                    {
                        if (item.lifecycle_status.ToLower() == "confirmed")
                        {
                            variantPlc = "Confirmed";
                        }
                        else if (item.lifecycle_status.ToLower() == "delete")
                        {
                            variantPlc = "Delete";
                        }
                        else if (item.lifecycle_status.ToLower() == "shortlist")
                        {
                            variantPlc = "Shortlist";
                        }
                        else
                        {
                            OnTaskCompleted(this, new ErpTaskCompletedArgs
                            {
                                Exception =
                                    new AxBaseException
                                {
                                    ApplicationException = new Exception(string.Format("Plc update batch = {0} {1} {2} {3} {4} contains an invalid Product Lifecycle State {5} in D365",
                                                                                       item.product_no, item.product_color_id, item.product_size_id, item.product_style_id, item.product_config_id, item.lifecycle_status))
                                },
                                ActionId = actionId,
                                Status   = 3
                            });
                            return(actionId);
                        }
                        var variant = new ReleasedProductVariant
                        {
                            ItemNumber              = item.product_no,
                            ProductMasterNumber     = item.product_no,
                            ProductSizeId           = item.product_size_id,
                            ProductColorId          = item.product_color_id,
                            ProductStyleId          = item.product_style_id,
                            ProductConfigurationId  = item.product_config_id,
                            ProductLifecycleStateId = variantPlc
                        };
                        startTime = DateTime.Now;
                        //var erpVariants = ServiceConnector.CallOdataEndpointPost<ReleasedProductVariantDTO>("ReleasedProductVariants", null, variant).Result;
                        variantList.Add(variant);
                    }
                    var erpVariants = UpdateVariants(variantList);
                    if (erpVariants.Exception != null)
                    {
                        DataWriter.LogErpActionStep(actionId, "Item create: write Released Product Variant", startTime, false, erpVariants.Exception.ErrorMessage, erpVariants.Exception.StackTrace, -1);
                        OnTaskCompleted(this, new ErpTaskCompletedArgs {
                            Exception = erpVariants.Exception, ActionId = actionId, Status = 3
                        });
                        return(actionId);
                    }
                    DataWriter.LogErpActionStep(actionId, "Item create: write Released Product Variant", startTime, true, null, null, -1);
                    AxDbHandler.UpdateProductLifeCycleState(plcUpdateId, actionId, 2);
                    OnTaskCompleted(this, new ErpTaskCompletedArgs {
                        ActionId = actionId, Status = 2
                    });
                    return(actionId);
                }
            }
            OnTaskCompleted(this, new ErpTaskCompletedArgs {
                ActionId = actionId, Status = 2
            });
            return(actionId);
        }