Пример #1
0
        private static List <Clearence> GetClearanceIds(Entities entities, SADGood good, string pattern)
        {
            List <Clearence> _ret = new List <Clearence>();

            foreach (SADRequiredDocuments _rdx in good.SADRequiredDocuments(entities))
            {
                if (_rdx.Code != XMLResources.RequiredDocumentConsignmentCode)
                {
                    continue;
                }
                int?_cleranceInt = XMLResources.GetRequiredDocumentFinishedGoodExportConsignmentNumber(_rdx.Number, pattern);
                if (!_cleranceInt.HasValue)
                {
                    continue;
                }
                if (_cleranceInt.HasValue)
                {
                    Clearence _clearance = Element.GetAtIndex <Clearence>(entities.Clearence, _cleranceInt.Value);
                    _ret.Add(_clearance);
                }
                else
                {
                    string _template = "Cannot find clearance for the required document code={0} for customs document = {1}/ref={2}";
                    throw new InputDataValidationException(
                              String.Format(_template, _rdx.Number, good.SADDocumentIndex.DocumentNumber, good.SADDocumentIndex.ReferenceNumber),
                              "SAD Required Documents",
                              "clear through customs fatal error", true);
                }
            }// foreach
            if (_ret.Count == 0)
            {
                string _template = "Cannot find required document code={0} for customs document = {1}/ref={2}";
                throw new InputDataValidationException(
                          String.Format(_template, XMLResources.RequiredDocumentConsignmentCode, good.SADDocumentIndex.DocumentNumber, good.SADDocumentIndex.ReferenceNumber),
                          "SAD Required Documents",
                          "clear through customs fatal error", true);
            }
            return(_ret);
        }
        private static SAD CraeteSAD(Entities entities, CustomsWarehouseDisposal disposal, string masterDocumentName)
        {
            SADGood _entrySAD = disposal.CWL_CWDisposal2CustomsWarehouseID.CWL_CW2ClearenceID.Clearence2SadGoodID;
            List <SADZgloszenieTowarDokumentWymagany> _dcsList = new List <SADZgloszenieTowarDokumentWymagany>();
            int _Pos = 1;

            _dcsList.Add(SADZgloszenieTowarDokumentWymagany.Create(_Pos++, Settings.CustomsProcedureCode9DK8, masterDocumentName, String.Empty));
            foreach (SADRequiredDocuments _rdx in _entrySAD.SADRequiredDocuments(entities, false))
            {
                if (Required(_rdx.Code))
                {
                    _dcsList.Add(SADZgloszenieTowarDokumentWymagany.Create(_Pos++, _rdx.Code, _rdx.Number, _rdx.Title));
                }
            }
            decimal _IloscTowaruId = 1;

            SADZgloszenieTowarIloscTowaru[] _IloscTowaruArray = new SADZgloszenieTowarIloscTowaru[]
            {
                SADZgloszenieTowarIloscTowaru.Create(ref _IloscTowaruId, disposal.CW_SettledNetMass.ConvertToDecimal(), disposal.CW_SettledGrossMass.ConvertToDecimal())
            };
            decimal _Value = disposal.TobaccoValue.ConvertToDecimal();
            decimal _SADZgloszenieTowarId = 1;
            string  _CWDocumentNo         = disposal.CWL_CWDisposal2CustomsWarehouseID.DocumentNo;
            string  _CustomsProcedure     = String.IsNullOrEmpty(disposal.CustomsProcedure) ? disposal.CWL_CWDisposal2DisposalRequestLibraryID.ClearenceProcedure.Value.Convert2String() : disposal.CustomsProcedure;

            SADZgloszenieTowar[] _good = new SADZgloszenieTowar[]
            {
                SADZgloszenieTowar.Create
                    (disposal.GoodsName(entities), disposal.CW_PackageToClear.ConvertToDecimal(), _CWDocumentNo, _Value, ref _SADZgloszenieTowarId, disposal.ProductCode,
                    disposal.ProductCodeTaric, _CustomsProcedure, _dcsList.ToArray(), _IloscTowaruArray)
            };
            SADZgloszenieUC _CustomsOffice = SADZgloszenieUC.Create(Settings.GetParameter(entities, SettingsEntry.DefaultCustomsOffice));
            SADZgloszenie   _application   = SADZgloszenie.Create(_good, _CustomsOffice,
                                                                  Settings.GetParameter(entities, SettingsEntry.RecipientOrganization),
                                                                  Vendor.SenderOrganization(entities));

            return(SAD.Create(Settings.GetParameter(entities, SettingsEntry.OrganizationEmail), _application));
        }