Пример #1
0
        private static int AddFreeText(int itmcnt, global::DocumentItemDS.Business.Entities.xcuda_Item itm, string entryDataId)
        {
            if (BaseDataModel.Instance.CurrentApplicationSettings.GroupEX9 != true)
            {
                if (itmcnt < 5)
                {
                    if (itm.Free_text_1 == null)
                    {
                        itm.Free_text_1 = "";                          //"Inv.#"
                    }
                    itm.Free_text_1 = itm.Free_text_1 + "|" +
                                      string.Format("{0}", entryDataId);
                    //CleanText(allo.EntryDataDetails.EntryDataId));
                }
                else
                {
                    if (itm.Free_text_2 == null)
                    {
                        itm.Free_text_2 = "";                          //"Inv.#"
                    }
                    itm.Free_text_2 = itm.Free_text_2 + "|" +
                                      string.Format("{0}", entryDataId);
                    // CleanText(allo.EntryDataDetails.EntryDataId));
                }

                itmcnt += 1;
            }
            if (itm.Free_text_1 != null && itm.Free_text_1.Length > 1)
            {
                if (itm.Free_text_1.Length < 31)
                {
                    itm.Free_text_1 = itm.Free_text_1.Substring(1);
                }
                else
                {
                    itm.Free_text_1 = itm.Free_text_1.Substring(1, 30);
                }
            }


            if (itm.Free_text_2 != null && itm.Free_text_2.Length > 1)
            {
                if (itm.Free_text_2.Length < 21)
                {
                    itm.Free_text_2 = itm.Free_text_2.Substring(1);
                }
                else
                {
                    itm.Free_text_2 = itm.Free_text_2.Substring(1, 20);
                }
            }
            return(itmcnt);
        }
Пример #2
0
        public bool CreateEx9EntryAsync(dynamic mypod, DocumentCT cdoc, int itmcount, string dfp, bool applyEX9Bucket)
        {
            try
            {
                if (applyEX9Bucket == true)
                {
                    Ex9Bucket(mypod, dfp, cdoc);
                }



                mypod.EntlnData.Quantity = Math.Round(mypod.EntlnData.Quantity, 2);
                if (mypod.EntlnData.Quantity <= 0)
                {
                    return(false);
                }

                global::DocumentItemDS.Business.Entities.xcuda_PreviousItem pitm = CreatePreviousItem(mypod.EntlnData, itmcount, dfp);
                if (pitm.Net_weight < 0.01)
                {
                    foreach (AsycudaSalesAllocations item in mypod.Allocations)
                    {
                        item.Status = "Net Weight < 0.01";
                    }
                    return(false);
                }


                //cdoc.Document.xcuda_PreviousItem.Add(pitm);
                pitm.ASYCUDA_Id = cdoc.Document.ASYCUDA_Id;
                global::DocumentItemDS.Business.Entities.xcuda_Item itm = BaseDataModel.Instance.CreateItemFromEntryDataDetail(mypod.EntlnData, cdoc);

                itm.xcuda_ASYCUDA = cdoc.Document;

                //TODO:Refactor this dup code
                if (mypod.Allocations != null)
                {
                    var itmcnt = 0;
                    foreach (
                        var allo in (mypod.Allocations as List <AsycudaSalesAllocations>))//.Distinct()
                    {
                        itm.xBondAllocations.Add(new xBondAllocations()
                        {
                            AllocationId = allo.AllocationId, xcuda_Item = itm, TrackingState = TrackingState.Added
                        });

                        itmcnt = AddFreeText(itmcnt, itm, allo.EntryDataDetails.EntryDataId);
                    }
                }
                //return true;



                itm.xcuda_PreviousItem = pitm;
                pitm.xcuda_Item        = itm;

                // cdoc.Document.xcuda_PreviousItem.Add(pitm);
                //pitm.xcuda_ASYCUDA = cdoc;
                // pitm.PreviousDocumentItem = itm;

                itm.xcuda_Tarification.xcuda_HScode.Commodity_code = pitm.Hs_code;
                itm.xcuda_Goods_description.Country_of_origin_code = pitm.Goods_origin;


                itm.xcuda_Previous_doc.Summary_declaration = String.Format("{0} {1} C {2} art. {3}", pitm.Prev_reg_cuo,
                                                                           pitm.Prev_reg_dat,
                                                                           pitm.Prev_reg_nbr, pitm.Previous_item_number);
                itm.xcuda_Valuation_item.xcuda_Weight_itm = new xcuda_Weight_itm()
                {
                    TrackingState = TrackingState.Added
                };
                itm.xcuda_Valuation_item.xcuda_Weight_itm.Gross_weight_itm = pitm.Net_weight;
                itm.xcuda_Valuation_item.xcuda_Weight_itm.Net_weight_itm   = pitm.Net_weight;
                // adjusting because not using real statistical value when calculating
                itm.xcuda_Valuation_item.xcuda_Item_Invoice.Amount_foreign_currency =
                    Convert.ToDouble(Math.Round((pitm.Current_value * pitm.Suplementary_Quantity), 2));
                itm.xcuda_Valuation_item.xcuda_Item_Invoice.Amount_national_currency =
                    Convert.ToDouble(Math.Round(pitm.Current_value * pitm.Suplementary_Quantity, 2));
                itm.xcuda_Valuation_item.xcuda_Item_Invoice.Currency_code = "XCD";
                itm.xcuda_Valuation_item.xcuda_Item_Invoice.Currency_rate = 1;


                if (cdoc.DocumentItems.Select(x => x.xcuda_PreviousItem).Count() == 1 || itmcount == 0)
                {
                    pitm.Packages_number          = "1"; //(i.Packages.Number_of_packages).ToString();
                    pitm.Previous_Packages_number = pitm.Previous_item_number == "1" ? "1" : "0";
                }
                else
                {
                    pitm.Packages_number          = (0).ToString(CultureInfo.InvariantCulture);
                    pitm.Previous_Packages_number = (0).ToString(CultureInfo.InvariantCulture);
                }



                return(true);
            }
            catch (Exception Ex)
            {
                throw;
            }
        }