Ejemplo n.º 1
0
        protected void Page_Init(object sender, EventArgs e)
        {
            // The code below helps to protect against XSRF attacks
            dc = new DALPortalDataContext();
            var  requestCookie = Request.Cookies[AntiXsrfTokenKey];
            Guid requestCookieGuidValue;

            if (requestCookie != null && Guid.TryParse(requestCookie.Value, out requestCookieGuidValue))
            {
                // Use the Anti-XSRF token from the cookie
                _antiXsrfTokenValue   = requestCookie.Value;
                Page.ViewStateUserKey = _antiXsrfTokenValue;
            }
            else
            {
                // Generate a new Anti-XSRF token and save to the cookie
                _antiXsrfTokenValue   = Guid.NewGuid().ToString("N");
                Page.ViewStateUserKey = _antiXsrfTokenValue;

                var responseCookie = new HttpCookie(AntiXsrfTokenKey)
                {
                    HttpOnly = true,
                    Value    = _antiXsrfTokenValue
                };
                if (FormsAuthentication.RequireSSL && Request.IsSecureConnection)
                {
                    responseCookie.Secure = true;
                }
                Response.Cookies.Set(responseCookie);
            }

            Page.PreLoad += master_Page_PreLoad;
        }
Ejemplo n.º 2
0
        protected void RadButtonSelectedInZip_Click(object sender, EventArgs e)
        {
            List <String> certificateLinks = GetCertificateLinks();

            if (certificateLinks.Count != 0)
            {
                String databaseName = new DALPortalDataContext().Connection.Database;

                string filenameAndExtension = FilenameAndExtension(".zip");
                // string path = HttpContext.Current.Server.MapPath(Path.Combine(@"~\Files\Temp", filenameAndExtension));
                string path = HttpContext.Current.Server.MapPath(Path.Combine(@"~\Files\Temp", filenameAndExtension));
                using (ZipArchive newFile = ZipFile.Open(path, ZipArchiveMode.Create))
                {
                    foreach (string certificateLink in certificateLinks)
                    {
                        newFile.CreateEntryFromFile(certificateLink, Path.GetFileName(certificateLink));
                    }
                }

                downloadFromPath(path);
            }
            else
            {
                LiteralNoCertificatesSelected.Visible = true;
            }
        }
Ejemplo n.º 3
0
        private IQueryable <applicationRole> GetData()
        {
            DALPortalDataContext dc = new DALPortalDataContext();
            string value            = RadListBoxApplications.SelectedValue;

            return(dc.applicationRoles.Where(c => c.application.applicationName.Equals(value)));
        }
Ejemplo n.º 4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string username = (string)Session["username"];
            string name     = (string)Session["name"];

            UsernameLiteral2.Text = username;
            if (name.Equals("&nbsp;"))
            {
                name = "";
            }
            if (!IsPostBack)
            {
                TextBoxName.Text = name;
            }

            DALPortalDataContext dc = new DALPortalDataContext();
            Guid        userId2     = dc.Users.Where(c => c.UserName.Equals(username)).Select(c => c.UserId).SingleOrDefault();
            userSetting setting     = dc.userSettings.Where(c => c.userId.Equals(userId2)).SingleOrDefault();

            if (setting != null)
            {
                companyDDL.SelectedValue = setting.company.companyCode;
                if (!IsPostBack)
                {
                    adminCheckBox.Checked = setting.siteAdmin;
                }
            }
        }
Ejemplo n.º 5
0
        protected void RadButtonMergePDFs_Click(object sender, EventArgs e)
        {
            List <String> certificateLinks = GetCertificateLinks();

            if (certificateLinks.Count != 0)
            {
                PdfDocument outputPDFDocument = new PdfDocument();
                foreach (string certificateLink in certificateLinks)
                {
                    PdfDocument inputPDFDocument = CompatiblePdfReader.Open(certificateLink);
                    outputPDFDocument.Version = inputPDFDocument.Version;
                    foreach (PdfPage page in inputPDFDocument.Pages)
                    {
                        outputPDFDocument.AddPage(page);
                    }
                }

                String databaseName = new DALPortalDataContext().Connection.Database;

                string filenameAndExtension = FilenameAndExtension(".pdf");
                string saveMergedPDFPath    = HttpContext.Current.Server.MapPath(Path.Combine(@"~\Files\Temp", filenameAndExtension));
                outputPDFDocument.Save(saveMergedPDFPath);
                string path = "../Files/Temp/" + filenameAndExtension;

                ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "OpenPDFScript", "window.open(\"../" + path + "\");", true);

                //downloadFromPath(path);
            }
            else
            {
                LiteralNoCertificatesSelected.Visible = true;
            }
        }
        protected void RadSaveButton_Click(object sender, EventArgs e)
        {
            DALPortalDataContext dc = new DALPortalDataContext();

            certificateBundle bundleOld = dc.certificateBundles.Where(c => c.businessPartnerId.Equals(businessPartnerId) && c.isActive.Equals(true)).SingleOrDefault();

            if (bundleOld != null)
            {
                if (this.modelId == bundleOld.modelId)
                {
                    bundleOld.startDate       = DateTime.Now;
                    bundleOld.expireDate      = validUntilDTP.SelectedDate;
                    bundleOld.previousCertQty = bundleOld.actualCertQty;
                    // bundle.orderedCertQty = (Int32)creditsLeftTxtBox.Value - bundle.previousCertQty;
                    bundleOld.actualCertQty    = (Int32)creditsLeftTxtBox.Value;
                    bundleOld.certificatePrice = (Decimal)priceTextBox.Value;
                    bundleOld.isActive         = true;
                    // bundleOud.modelId = modelId;
                    bundleOld.companyCode       = "ZW";
                    bundleOld.businessPartnerId = businessPartnerId;
                }
                else
                {
                    bundleOld.isActive = false;
                    certificateBundle bundelNew = new certificateBundle();
                    bundelNew.startDate         = DateTime.Now;
                    bundelNew.expireDate        = validUntilDTP.SelectedDate;
                    bundelNew.previousCertQty   = bundleOld.actualCertQty;
                    bundelNew.orderedCertQty    = 0;
                    bundelNew.actualCertQty     = (Int32)creditsLeftTxtBox.Value;
                    bundelNew.certificatePrice  = (Decimal)priceTextBox.Value;
                    bundelNew.isActive          = true;
                    bundelNew.modelId           = modelId;
                    bundelNew.companyCode       = "ZW";
                    bundelNew.businessPartnerId = businessPartnerId;
                    dc.certificateBundles.InsertOnSubmit(bundelNew);
                }
            }
            else
            {
                certificateBundle bundelNew = new certificateBundle();
                bundelNew.startDate         = DateTime.Now;
                bundelNew.expireDate        = validUntilDTP.SelectedDate;
                bundelNew.previousCertQty   = 0;
                bundelNew.orderedCertQty    = 0;
                bundelNew.actualCertQty     = (Int32)creditsLeftTxtBox.Value;
                bundelNew.certificatePrice  = (Decimal)priceTextBox.Value;
                bundelNew.isActive          = true;
                bundelNew.modelId           = modelId;
                bundelNew.companyCode       = "ZW";
                bundelNew.businessPartnerId = businessPartnerId;
                dc.certificateBundles.InsertOnSubmit(bundelNew);
            }

            dc.SubmitChanges();

            Session["businessPartnerId"] = businessPartnerId;
            Response.Redirect("~/Pages/CustomerAccountDetails.aspx");
        }
Ejemplo n.º 7
0
        protected void RadButtonCreate_Click(object sender, EventArgs e)
        {
            DALPortalDataContext dc = new DALPortalDataContext();
            string username         = (string)Session["username"];
            string name             = (string)Session["name"];

            string[] items = new string[RadListBoxDestination.Items.Count];

            for (int i = 0; RadListBoxDestination.Items.Count > i; i++)             //RadListBoxItem item in RadListBoxDestination.Items)
            {
                items[i] = RadListBoxDestination.Items[i].Value;
            }

            Guid            userId2 = dc.Users.Where(c => c.UserName.Equals(username)).Select(c => c.UserId).SingleOrDefault();
            List <userRole> roles   = dc.userRoles.Where(c => c.userId.Equals(userId2)).ToList();

            for (int i = 0; roles.Count() > i; i++)
            {
                if (!items.Contains(roles[i].roleCode))
                {
                    //   roles.RemoveAt(i);
                    dc.userRoles.DeleteOnSubmit(roles[i]);
                }
            }

            for (int i = 0; items.Count() > i; i++)
            {
                if (!roles.Any(c => c.roleCode.Equals(items[i])))
                {
                    userRole roleUser = new userRole {
                        userId = userId2, roleCode = items[i]
                    };
                    dc.userRoles.InsertOnSubmit(roleUser);
                }
            }

            userSetting userSetting = dc.userSettings.Where(c => c.userId.Equals(userId2)).SingleOrDefault();

            if (userSetting == null)
            {
                userSetting = new userSetting {
                    userId = userId2
                };
                userSetting.companyCode        = "ZW";
                userSetting.defaultCultureCode = "nl";
                userSetting.name      = TextBoxName.Text;
                userSetting.siteAdmin = adminCheckBox.Checked;
                dc.userSettings.InsertOnSubmit(userSetting);
            }
            else
            {
                userSetting.siteAdmin   = adminCheckBox.Checked;
                userSetting.name        = TextBoxName.Text;
                userSetting.companyCode = companyDDL.SelectedValue;
            }

            dc.SubmitChanges();
            Response.Redirect("~/Pages/UserAccounts.aspx");
        }
Ejemplo n.º 8
0
        private void UpdateApplicationRoles(contactPerson contactPerson, DALPortalDataContext dc)
        {
            if (!contactPerson.isWebContact)
            {
                // Delete all roles
                var userRoles = dc.userRoles.Where(c => c.userId.Equals(contactPerson.userId));
                dc.userRoles.DeleteAllOnSubmit(userRoles);

                dc.SubmitChanges();
                return;
            }

            // Add CERT_USER role
            if (contactPerson.TMP_PortalAccess == "01" || contactPerson.TMP_PortalAccess == "04")
            {
                if (!dc.userRoles.Any(c => c.userId.Equals(contactPerson.userId) && c.roleCode.Equals("CERT_USER")))
                {
                    dc.userRoles.InsertOnSubmit(new userRole()
                    {
                        userId = contactPerson.userId.Value, roleCode = "CERT_USER"
                    });
                }
            }

            // Add DOP_USER role
            if (contactPerson.TMP_PortalAccess == "03" || contactPerson.TMP_PortalAccess == "04")
            {
                if (!dc.userRoles.Any(c => c.userId.Equals(contactPerson.userId) && c.roleCode.Equals("DOP_USER")))
                {
                    dc.userRoles.InsertOnSubmit(new userRole()
                    {
                        userId = contactPerson.userId.Value, roleCode = "DOP_USER"
                    });
                }
            }

            if (contactPerson.TMP_PortalAccess == "01")
            {
                // Delete DOP_USER role
                var userRoles = dc.userRoles.Where(c => c.userId.Equals(contactPerson.userId) && c.roleCode.Equals("DOP_USER"));
                dc.userRoles.DeleteAllOnSubmit(userRoles);
            }

            if (contactPerson.TMP_PortalAccess == "03")
            {
                // Delete CERT_USER role
                var userRoles = dc.userRoles.Where(c => c.userId.Equals(contactPerson.userId) && c.roleCode.Equals("CERT_USER"));
                dc.userRoles.DeleteAllOnSubmit(userRoles);
            }

            if (contactPerson.TMP_PortalAccess == null)
            {
                // Delete all roles
                var userRoles = dc.userRoles.Where(c => c.userId.Equals(contactPerson.userId));
                dc.userRoles.DeleteAllOnSubmit(userRoles);
            }

            dc.SubmitChanges();
        }
Ejemplo n.º 9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            bpCode            = (string)Session["bpCode"];
            companyCode2.Text = bpCode;
            businessPartnerId = (Int32)Session["businessPartnerId"];
            dc = new DALPortalDataContext();

            string bpName  = dc.businessPartners.Where(c => c.bpCode.Equals(bpCode)).Select(c => c.bpName).SingleOrDefault();
            string country = dc.businessPartners.Where(c => c.bpCode.Equals(bpCode)).Select(c => c.countryCode).SingleOrDefault();

            company2.Text      = bpName;
            LabelCountry2.Text = country;

            bool isMother = checkBoxMother.Checked;

            if (!IsPostBack)
            {
                checkBoxMother.Checked = getCheckBoxState();
                isMother = getCheckBoxState();
                accountManagerDDL.SelectedValue = dc.businessPartners.Where(c => c.bpCode.Equals(bpCode)).Select(c => c.accountManager).SingleOrDefault().ToString();
                var isSister = dc.businessPartners.Where(c => c.bpCode.Equals(bpCode)).Select(c => c.bpMother).SingleOrDefault();

                if (isSister > 0)
                {
                    selectSistersButton.Enabled  = false;
                    dopCheckBox.Enabled          = false;
                    certificatesCheckBox.Enabled = false;
                    ImageButton1.Enabled         = false;
                    selectSistersButton.Enabled  = false;
                    checkBoxMother.Enabled       = false;
                }
            }

            if (!isMother)
            {
                selectSistersButton.Enabled = false;
            }
            else
            {
                selectSistersButton.Enabled = true;
            }
            if (!IsPostBack)
            {
                var bpRoles = dc.businessPartnerApplications.Where(c => c.businessPartnerId.Equals(businessPartnerId)).Select(c => c).ToList();
                foreach (var role in bpRoles)
                {
                    businessPartnerApplication roleE = role;
                    if (roleE.applicationCode.Equals("CERT"))
                    {
                        certificatesCheckBox.Checked = true;
                    }
                    if (roleE.applicationCode.Equals("DOP"))
                    {
                        dopCheckBox.Checked = true;
                    }
                }
            }
        }
Ejemplo n.º 10
0
        private IQueryable <string> GetDataUserRoles()
        {
            DALPortalDataContext dc = new DALPortalDataContext();
            string username         = (string)Session["username"];


            Guid userId2 = dc.Users.Where(c => c.UserName.Equals(username)).Select(c => c.UserId).SingleOrDefault();


            return(dc.userRoles.Where(c => c.userId.Equals(userId2)).Select(c => c.roleCode));
        }
Ejemplo n.º 11
0
 protected void Page_Load(object sender, EventArgs e)
 {
     businessPartnerId = (Int32)Session["businessPartnerId"];
     dc = new DALPortalDataContext();
     if (IsPostBack)
     {
         if (ViewState["bpCode"] != null)
         {
             bpCode = ViewState["bpCode"].ToString();
         }
     }
 }
Ejemplo n.º 12
0
        private void loadData()
        {
            DALPortalDataContext dc        = new DALPortalDataContext();
            certificateBundle    bundleOud = dc.certificateBundles.Where(c => c.businessPartnerId.Equals(bpId) && c.isActive.Equals(true)).SingleOrDefault();

            if (bundleOud != null)
            {
                creditsPurchasedTxtBox.Value = bundleOud.orderedCertQty;
                if (bundleOud.usedCertQty != null)
                {
                    creditsUsedTxtBox.Value = bundleOud.usedCertQty;
                }
            }
        }
Ejemplo n.º 13
0
        protected void Page_Load(object sender, EventArgs e)
        {
            dc = new DALPortalDataContext();
            if (IsPostBack)
            {
                if (ViewState["radGridCheckBoxSellectAllChecked"] != null)
                {
                    radGridCheckBoxSellectAllChecked = (bool)ViewState["radGridCheckBoxSellectAllChecked"];
                }
            }

            //  RadGridCertificate.DataSource = null;
            //  RadGridCertificate.DataBind();
            if (!IsPostBack)
            {
                RadGridCertificate.Visible     = false;
                RadButtonMergePDFs.Visible     = false;
                RadButtonSelectedInZip.Visible = false;
            }
            Guid userId   = (Guid)Membership.GetUser().ProviderUserKey;
            int  bpId     = dc.contactPersons.Where(c => c.userId.Equals(userId)).Select(c => c.businessPartnerId).SingleOrDefault();
            var  isSister = dc.businessPartners.Where(c => c.businessPartnerId.Equals(bpId)).Select(c => c.bpMother).SingleOrDefault();
            var  hasRole  = dc.businessPartnerApplications.Where(c => c.businessPartnerId.Equals(bpId)).Where(c => c.applicationCode.Equals("DOP")).Select(c => c).SingleOrDefault();

            if (!UserIsAdmin())
            {
                if (hasRole == null)
                {
                    if (isSister > 0)
                    {
                        var hasRole2 = dc.businessPartnerApplications.Where(c => c.businessPartnerId.Equals(isSister)).Where(c => c.applicationCode.Equals("DOP")).Select(c => c).SingleOrDefault();
                        if (hasRole2 == null)
                        {
                            SearchTxtBox.Enabled   = false;
                            SearchButton.Enabled   = false;
                            warningLiteral.Visible = true;
                            warningLiteral.Text    = "Your account has been disabled, please contact your accountmanager.";
                        }
                    }
                    else
                    {
                        SearchTxtBox.Enabled   = false;
                        SearchButton.Enabled   = false;
                        warningLiteral.Visible = true;
                        warningLiteral.Text    = "Your account has been disabled, please contact your accountmanager.";
                    }
                }
            }
        }
Ejemplo n.º 14
0
 protected void Page_Load(object sender, EventArgs e)
 {
     dc = new DALPortalDataContext();
     if (IsPostBack)
     {
         if (ViewState["bpName"] != null)
         {
             bpName = ViewState["bpName"].ToString();
         }
         if (ViewState["bpCode"] != null)
         {
             bpCode = ViewState["bpCode"].ToString();
         }
     }
 }
Ejemplo n.º 15
0
        protected void Page_Load(object sender, EventArgs e)
        {
            portalDc = new DALPortalDataContext();

            if (!IsPostBack)
            {
                itemFilter = new ItemFilter();

                Session["itemFilter"] = itemFilter;
            }
            else
            {
                itemFilter = (ItemFilter)Session["itemFilter"];
            }
        }
Ejemplo n.º 16
0
        public static void RemoveBatchesDocument(int docId, string docType, DALPortalDataContext dc)
        {
            var        batchDocuments = dc.batchDocuments.Where(c => c.baseDocType.Equals(docType) && c.baseDocId.Equals(docId));
            List <int> batchIds       = batchDocuments.Select(c => c.batchId).ToList();

            dc.batchDocuments.DeleteAllOnSubmit(batchDocuments);

            dc.SubmitChanges();

            var batches = dc.batches.Where(c => batchIds.Contains(c.batchId) && c.batchDocuments.Count() == 0);

            dc.batches.DeleteAllOnSubmit(batches);

            dc.SubmitChanges();
        }
Ejemplo n.º 17
0
        public static item GetItem(String itemCode, String companyCode, DALPortalDataContext dc)
        {
            if (!dc.items.Any(c => c.itemCode.Equals(itemCode)))
            {
                return(null);
            }

            if (dc.companyGroupForItems.Any(c => c.companyCode.Equals(companyCode)))
            {
                return(dc.items.Where(c => c.itemCode.Equals(itemCode) && c.companyGroup.companyGroupForItems.Any(d => d.companyCode.Equals(companyCode))).FirstOrDefault());
            }
            else
            {
                return(dc.items.Where(c => c.itemCode.Equals(itemCode) && c.companyCode.Equals(companyCode)).FirstOrDefault());
            }
        }
        private void getData()
        {
            DALPortalDataContext dc     = new DALPortalDataContext();
            certificateBundle    bundle = dc.certificateBundles.Where(c => c.businessPartnerId.Equals(businessPartnerId) && c.isActive.Equals(true)).SingleOrDefault();

            if (bundle != null)
            {
                creditsPurchasedTxtBox.Value = bundle.orderedCertQty;
                creditsUsedTxtBox.Value      = bundle.usedCertQty;
                creditsLeftTxtBox.Value      = bundle.actualCertQty;
                validUntilDTP.SelectedDate   = bundle.expireDate;
                if (bundle.certificatePrice == null)
                {
                    priceTextBox.Value = 7.50;
                }
                else
                {
                    priceTextBox.Value = (Double)bundle.certificatePrice;
                }

                switch (bundle.modelId)
                {
                case 1:
                    btnModel1.Checked = true;
                    break;

                case 2:
                    btnModel2.Checked = true;
                    break;

                case 3:
                    btnModel3.Checked = true;
                    break;

                case 4:
                    btnModel4.Checked = true;
                    break;

                case 5:
                    btnModel5.Checked = true;
                    break;
                }

                this.modelId = bundle.modelId;
            }
        }
Ejemplo n.º 19
0
        /// <summary>
        /// Get Mother BusinessPartner based on UserId
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="dc"></param>
        /// <returns></returns>
        public static businessPartner GetBusinessPartnerMother(Guid userId, DALPortalDataContext dc)
        {
            businessPartner bp = dc.businessPartners.Where(c => c.contactPersons.Any(d => d.userId.Equals(userId))).FirstOrDefault();

            if (bp == null)
            {
                return(null);
            }

            if (bp.businessPartner1 == null)
            {
                return(bp);
            }
            else
            {
                return(bp.businessPartner1);
            }
        }
Ejemplo n.º 20
0
        public Boolean ProcessPDF(String databaseName, String filePath)
        {
            Boolean returnValue = true;

            try
            {
                String fileName = Path.GetFileName(filePath);
                String fileType = fileName.Substring(0, fileName.IndexOf("_"));

                switch (fileType)
                {
                case "CERT":

                    DALPortalDataContext dc = new DALPortalDataContext();

                    String newPath = Path.Combine(Parameters_DataProcessor.CompanyFilesRoot, "Certificates", fileName);
                    String dbPath  = Path.Combine(@"~\Files\Certificates", fileName);
                    String docId   = fileName.Replace(fileType + "_", "").Replace(".pdf", "");

                    var batchesToUpdate = dc.batches.Where(c => c.ixosArchiveId.Equals(docId)).ToList();
                    if (batchesToUpdate.Count == 0)
                    {
                        throw new Exception(String.Format("Unable to find Batch with certificateIndexNumber {0}", docId));
                    }

                    VanLeeuwen.Framework.IO.File.WaitForRelease(filePath, 10);
                    VanLeeuwen.Framework.IO.File.MoveAndOverwrite(filePath, newPath);

                    // Add Path to Batches
                    batchesToUpdate.ForEach(c => c.certificateLink = dbPath);
                    dc.SubmitChanges();

                    break;
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(String.Format("Process PDF file Failed. Error: {0}", ex.Message), "ProcessDataFromXML");
                returnValue = false;
            }

            return(returnValue);
        }
Ejemplo n.º 21
0
        protected void LoginBox_LoggedIn(object sender, EventArgs e)
        {
            DALPortalDataContext dc     = new DALPortalDataContext();
            MembershipUser       member = Membership.GetUser(LoginBox.UserName);

            string id = member.ProviderUserKey.ToString().ToLower();

            List <userRole> roles = dc.userRoles.Where(c => c.userId.ToString().ToLower().Equals(id)).ToList();

            if (roles.Any(c => c.roleCode.Equals("CERT_USER")) || roles.Any(c => c.roleCode.Equals("CERT_ADMIN")))
            {
                Response.Redirect("~/Pages/DeliveryDetails.aspx");
            }

            if (roles.Any(c => c.roleCode.Equals("DOP_USER")) || roles.Any(c => c.roleCode.Equals("DOP_ADMIN")))
            {
                Response.Redirect("~/Pages/DOP/DOPDetails.aspx");
            }
        }
Ejemplo n.º 22
0
        protected void Page_Load(object sender, EventArgs e)
        {
            portalDc = new DALPortalDataContext();

            this.itemFilter = (ItemFilter)Session["itemFilter"];

            if (!IsPostBack)
            {
                this.selectedItemId      = Convert.ToInt32(Session["selectedItemId"]);
                this.selectedCompanyCode = Session["selectedCompanyCode"].ToString();

                IQueryable <vw_item> data = EsmHelper.GetData(portalDc, this.itemFilter);

                int index = data.ToList().FindIndex(c => c.itemId.Equals(selectedItemId) && c.companyCode.Equals(selectedCompanyCode));

                RadDataPager radDataPager = RadListViewItem.FindControl("RadDataPagerItem") as RadDataPager;
                radDataPager.FireCommand("Page", (index).ToString());
            }
        }
Ejemplo n.º 23
0
        public static item CreateItem(String itemCode, String itemDescription, String companyCode)
        {
            DALPortalDataContext dc = new DALPortalDataContext();

            if (GetItem(itemCode, companyCode, dc) == null)
            {
                item newItem = new item();
                newItem.itemCode    = itemCode;
                newItem.description = itemDescription;
                newItem.companyCode = companyCode;

                dc.items.InsertOnSubmit(newItem);
                dc.SubmitChanges();

                return(newItem);
            }

            return(null);
        }
Ejemplo n.º 24
0
        protected void rolesDataSource_Selecting(object sender, LinqDataSourceSelectEventArgs e)
        {
            e.Result = GetData();

            DALPortalDataContext dc = new DALPortalDataContext();

            string username = (string)Session["username"];

            Guid userId2 = dc.Users.Where(c => c.UserName.Equals(username)).Select(c => c.UserId).SingleOrDefault();

            List <string> roles = dc.userRoles.Where(c => c.userId.Equals(userId2)).Select(c => c.roleCode).ToList();


            for (int i = 0; roles.Count() > i; i++)
            {
                if (RadListBoxSource.FindItemByValue(roles[i]) != null)
                {
                    RadListBoxSource.FindItemByValue(roles[i]).Remove();
                }
            }
            RadListBox items = RadListBoxApplications;

            string valueListBox = RadListBoxApplications.SelectedValue;
        }
Ejemplo n.º 25
0
        public static Boolean ProcessCustomer(string fileContent, out businessPartner businessPartner, out String outCompanyCode)
        {
            businessPartner = new businessPartner();

            DALPortalDataContext dc = new DALPortalDataContext();
            Boolean update;
            String  companyCode = String.Empty;

            outCompanyCode = String.Empty;

            try
            {
                XDocument xmldoc                = XDocument.Parse(fileContent);
                XElement  docTypeElement        = xmldoc.Element("DEBMAS03");
                XElement  iDocElement           = docTypeElement.Element("IDOC");
                var       customerHeaderElement = iDocElement.Element("E1KNA1M");
                //Int32 CardCode;

                // Remove unused elements
                iDocElement.Element("EDI_DC40").Remove();

                // BpCode, remove leading zero's from Cardcode
                String bpCode      = Convert.ToInt32(customerHeaderElement.Element("KUNNR").Value).ToString();
                String sectionCode = customerHeaderElement.Element("E1KNVVM").Element("VKORG").Value;

                companyCode    = CompanyClass.GetCompanyBasedOnSection(sectionCode, dc);
                outCompanyCode = companyCode;

                // Check if bp Already exists
                businessPartner = BusinessPartnerClass.GetBusinessPartner(bpCode, companyCode, dc);
                if (businessPartner == null)
                {
                    businessPartner = new businessPartner();
                    update          = false;
                }
                else
                {
                    update = true;
                }

                if (!update)
                {
                    String companyGroupCode = dc.companyGroupForBps.Where(c => c.companyCode.Equals(companyCode)).Select(c => c.companyGroupCode).FirstOrDefault();

                    if (String.IsNullOrEmpty(companyGroupCode))
                    {
                        businessPartner.companyCode = companyCode;
                    }
                    else
                    {
                        businessPartner.companyGroupCode = companyGroupCode;
                    }
                }

                // Mapp customer header data
                businessPartner.bpCode  = bpCode;
                businessPartner.bpType  = 'C';
                businessPartner.bpName  = customerHeaderElement.Elements().Where(c => c.Name.ToString().Equals("NAME1")).FirstOrDefault().Value;
                businessPartner.address = customerHeaderElement.Elements().Where(c => c.Name.ToString().Equals("STRAS")).FirstOrDefault().Value;

                if (customerHeaderElement.Elements().Any(c => c.Name.ToString().Equals("TELF1")))
                {
                    businessPartner.telephone = customerHeaderElement.Elements().Where(c => c.Name.ToString().Equals("TELF1")).FirstOrDefault().Value;
                }

                if (customerHeaderElement.Elements().Any(c => c.Name.ToString().Equals("TELFX")))
                {
                    businessPartner.fax = customerHeaderElement.Elements().Where(c => c.Name.ToString().Equals("TELFX")).FirstOrDefault().Value;
                }

                businessPartner.countryCode  = customerHeaderElement.Elements().Where(c => c.Name.ToString().Equals("LAND1")).FirstOrDefault().Value;
                businessPartner.languageCode = customerHeaderElement.Elements().Where(c => c.Name.ToString().Equals("SPRAS_ISO")).FirstOrDefault().Value;


                // Mapp contactperson data
                foreach (var contactpersonElement in customerHeaderElement.Elements("E1KNVKM").ToList())
                {
                    contactPerson contact;

                    // Contact Id
                    String  contactPersonCode = Convert.ToInt32(contactpersonElement.Elements().Where(c => c.Name.ToString().Equals("PARNR")).FirstOrDefault().Value).ToString();
                    Boolean newContact        = false;

                    if (update && businessPartner.contactPersons.Any(c => c.contactPersonCode.Equals(contactPersonCode)))
                    {
                        contact = businessPartner.contactPersons.Where(c => c.contactPersonCode.Equals(contactPersonCode)).FirstOrDefault();
                    }
                    else
                    {
                        contact = new contactPerson();
                        contact.contactPersonCode = contactPersonCode;
                        newContact = true;
                    }

                    // Email
                    var emailAddress = contactpersonElement.Elements().Where(c => c.Name.ToString().Equals("PARAU")).FirstOrDefault();
                    if (emailAddress != null)
                    {
                        contact.eMail = emailAddress.Value.ToLower();
                    }

                    // Title
                    var title = contactpersonElement.Elements().Where(c => c.Name.ToString().Equals("ANRED")).FirstOrDefault();
                    if (title != null)
                    {
                        contact.title = title.Value;
                    }

                    // FirstName
                    var firstName = contactpersonElement.Elements().Where(c => c.Name.ToString().Equals("NAMEV")).FirstOrDefault();
                    if (firstName != null)
                    {
                        contact.firstName = firstName.Value;
                    }

                    // LastName
                    var lastName = contactpersonElement.Elements().Where(c => c.Name.ToString().Equals("NAME1")).FirstOrDefault();
                    if (lastName != null)
                    {
                        contact.lastName = lastName.Value;
                    }

                    // WebUser
                    var webUserType = contactpersonElement.Elements().Where(c => c.Name.ToString().Equals("AKVER")).FirstOrDefault();
                    if (webUserType != null)
                    {
                        contact.isWebContact     = (webUserType.Value == "02") ? false : true;
                        contact.TMP_PortalAccess = webUserType.Value;
                    }

                    // Add CardCode to contactperson
                    if (newContact)
                    {
                        businessPartner.contactPersons.Add(contact);
                    }
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(String.Format("Error converting customer {0} for company {1} from SAP ECC6 XML format. Error: {2}", businessPartner.bpCode, companyCode, ex.Message), "MapCustomerFromECC6");
                return(false);
            }

            if (update)
            {
                try
                {
                    dc.SubmitChanges();
                    Trace.WriteLine(String.Format("Updating Customer {0} for company {1} Successfull.", businessPartner.bpCode, companyCode), "MapCustomerFromECC6");
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(String.Format("Error Updating Customer {0} for company {1}. Error: {2}", businessPartner.bpCode, companyCode, ex.Message), "MapCustomerFromECC6");
                    return(false);
                }
            }
            else
            {
                try
                {
                    dc.businessPartners.InsertOnSubmit(businessPartner);
                    dc.SubmitChanges();
                    Trace.WriteLine(String.Format("Creating Customer {0} for company {1} Successfull.", businessPartner.bpCode, companyCode), "MapCustomerFromECC6");
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(String.Format("Error Creating Customer {0} for company {1}. Error: {2}", businessPartner.bpCode, companyCode, ex.Message), "MapCustomerFromECC6");
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 26
0
        private static Boolean ProcessBatches(delivery deliveryDocument, List <batch> batches)
        {
            DALPortalDataContext dc = new DALPortalDataContext();
            Boolean returnValue     = true;

            // Remove all batches attached to this document
            BatchClass.RemoveBatchesDocument(deliveryDocument.docId, deliveryDocument.docType, dc);

            foreach (batch batchLine in batches)
            {
                try
                {
                    batch batch = BatchClass.GetBatch(batchLine.batchNumber, batchLine.heatNumber, batchLine.itemId, deliveryDocument.companyCode, dc);

                    Boolean newBatch = false;
                    if (batch == null)
                    {
                        batch    = new batch();
                        newBatch = true;
                    }

                    if (newBatch)
                    {
                        batch.batchNumber = batchLine.batchNumber;
                        batch.companyCode = deliveryDocument.companyCode;
                    }

                    batch.itemId = batchLine.itemId;
                    batch.certificateIndexNumber = batchLine.certificateIndexNumber;
                    batch.heatNumber             = batchLine.heatNumber;
                    batch.ixosArchiveId          = batchLine.ixosArchiveId;

                    if (newBatch)
                    {
                        // Check if certificate is already on the server
                        String fileName = "CERT_" + batchLine.ixosArchiveId + ".pdf";
                        String filePath = Path.Combine(Parameters_DataProcessor.CompanyFilesRoot, "Certificates", fileName);
                        String dbPath   = Path.Combine(@"~\Files\Certificates", fileName);

                        if (File.Exists(filePath))
                        {
                            batch.certificateLink = dbPath;
                        }
                    }

                    foreach (batchDocument batchDocLine in batchLine.batchDocuments)
                    {
                        // Check if Batch relates to document
                        batchDocument batchDoc    = batch.batchDocuments.Where(c => c.baseDocId.Equals(deliveryDocument.docId) && c.baseLineNum.Equals(batchDocLine.baseLineNum) && c.baseDocType.Equals("DL")).FirstOrDefault();
                        Boolean       newBatchDoc = false;
                        if (batchDoc == null)
                        {
                            newBatchDoc          = true;
                            batchDoc             = new batchDocument();
                            batchDoc.baseDocId   = deliveryDocument.docId;
                            batchDoc.baseLineNum = batchDocLine.baseLineNum;
                            batchDoc.baseDocType = "DL";
                        }

                        batchDoc.quantity = batchDocLine.quantity;

                        if (newBatchDoc)
                        {
                            batch.batchDocuments.Add(batchDoc);
                        }
                    }

                    if (newBatch)
                    {
                        dc.batches.InsertOnSubmit(batch);
                    }

                    dc.SubmitChanges();
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(String.Format("Error Processing Batches for Delivery {0} for company {1}. Error: {2}", deliveryDocument.documentNumber, deliveryDocument.companyCode, ex.Message), "ProcessBatches");
                    returnValue = false;
                }
            }

            return(returnValue);
        }
Ejemplo n.º 27
0
        public static bool ProcessItem(string fileContent)
        {
            item item = new item();

            DALPortalDataContext dc = new DALPortalDataContext();
            Boolean update;
            String  companyCode = String.Empty;

            //outCompanyCode = String.Empty;

            try
            {
                XDocument xmldoc            = XDocument.Parse(fileContent);
                XElement  docTypeElement    = xmldoc.Element("MATMAS05");
                XElement  iDocElement       = docTypeElement.Element("IDOC");
                var       itemHeaderElement = iDocElement.Element("E1MARAM");

                // ItemCode, remove leading zero's from ItemCode
                String itemCode    = RemoveLeadingZeros(itemHeaderElement.Element("MATNR").Value).ToString();
                String sectionCode = itemHeaderElement.Element("E1MVKEM").Element("VKORG").Value;

                companyCode = CompanyClass.GetCompanyBasedOnSection(sectionCode, dc);

                // Check if item Already exists
                item = ItemClass.GetItem(itemCode, companyCode, dc);
                if (item == null)
                {
                    item   = new item();
                    update = false;
                }
                else
                {
                    update = true;
                }

                if (!update)
                {
                    item.companyCode = companyCode;
                }

                // Mapp customer header data
                item.itemCode = itemCode;

                // English description
                XElement ItemDescElement = itemHeaderElement.Elements("E1MAKTM").ToList().Where(c => c.Element("MSGFN").Value.Equals("005") && c.Element("SPRAS_ISO").Value.Equals("EN")).FirstOrDefault();
                if (ItemDescElement != null)
                {
                    XElement ItemDescElement2 = ItemDescElement.Element("MAKTX");
                    if (ItemDescElement2 != null)
                    {
                        item.description = ItemDescElement2.Value;
                    }
                }

                // Certificate Type.
                // 00 = Cert. Niet van toepassing
                if (itemHeaderElement.Elements().Any(c => c.Name.ToString().Equals("GTIN_VARIANT")))
                {
                    item.CertificateType = itemHeaderElement.Element("GTIN_VARIANT").Value;
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(String.Format("Error converting item {0} for company {1} from SAP ECC6 XML format. Error: {2}", item.itemCode, companyCode, ex.Message), "ProcessItem");
                return(false);
            }

            if (update)
            {
                try
                {
                    dc.SubmitChanges();
                    Trace.WriteLine(String.Format("Updating Item {0} for company {1} Successfull.", item.itemCode, companyCode), "ProcessItem");
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(String.Format("Error Updating Item {0} for company {1}. Error: {2}", item.itemCode, companyCode, ex.Message), "ProcessItem");
                    return(false);
                }
            }
            else
            {
                try
                {
                    dc.items.InsertOnSubmit(item);
                    dc.SubmitChanges();
                    Trace.WriteLine(String.Format("Creating Item {0} for company {1} Successfull.", item.itemCode, companyCode), "ProcessItem");
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(String.Format("Error Creating Item {0} for company {1}. Error: {2}", item.itemCode, companyCode, ex.Message), "ProcessItem");
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 28
0
        public static Boolean ProcessSalesOrder(string fileContent, out salesOrder document)
        {
            document = new salesOrder();

            DALPortalDataContext dc = new DALPortalDataContext();
            Boolean update;

            try
            {
                XDocument xmldoc         = XDocument.Parse(fileContent);
                XElement  docTypeElement = xmldoc.Element("ORDERS05");
                XElement  iDocElement    = docTypeElement.Element("IDOC");

                // Company
                XElement companyElement = iDocElement.Elements("E1EDK14").ToList().Where(c => c.Element("QUALF").Value.Equals("008")).FirstOrDefault();
                String   sectionCode    = companyElement.Element("ORGID").Value;
                String   companyCode    = CompanyClass.GetCompanyBasedOnSection(sectionCode, dc);

                String ecc6DocNum = RemoveLeadingZeros(iDocElement.Element("E1EDK01").Element("BELNR").Value);

                // Check if Sales Order already exists
                document = dc.salesOrders.Where(c => c.documentNumber.Equals(ecc6DocNum) && c.companyCode.Equals(companyCode)).FirstOrDefault();
                if (document == null)
                {
                    document                = new salesOrder();
                    document.companyCode    = companyCode;
                    document.documentNumber = ecc6DocNum;
                    document.docStatusCode  = "O";
                    update = false;
                }
                else
                {
                    update = true;
                }


                // Document Header info
                String          sapECC6BusinessPartnerCode = Convert.ToInt32(iDocElement.Element("E1EDK01").Element("RECIPNT_NO").Value).ToString();
                businessPartner bp = Objects.BusinessPartnerClass.GetBusinessPartner(sapECC6BusinessPartnerCode, document.companyCode, dc);
                if (bp == null)
                {
                    throw new Exception(String.Format("BusinessPartner {0} does not exists.", sapECC6BusinessPartnerCode));
                }

                document.businessPartnerId = bp.businessPartnerId;
                document.currencyCode      = iDocElement.Element("E1EDK01").Element("CURCY").Value;
                document.currencyRate      = Convert.ToDecimal(iDocElement.Element("E1EDK01").Element("WKURS").Value, NumberFormatInfo.InvariantInfo);

                // Customer Reference
                XElement custRef = iDocElement.Elements("E1EDK02").ToList().Where(c => c.Element("QUALF").Value.Equals("001")).FirstOrDefault();
                document.customerReference = custRef.Element("BELNR").Value;

                // Dates
                XElement delDateElement = iDocElement.Elements("E1EDK03").ToList().Where(c => c.Element("IDDAT").Value.Equals("002")).FirstOrDefault();
                document.deliveryDate = DateTime.ParseExact(delDateElement.Element("DATUM").Value, "yyyyMMdd", CultureInfo.CurrentCulture);

                XElement del2DateElement = iDocElement.Elements("E1EDK03").ToList().Where(c => c.Element("IDDAT").Value.Equals("012")).FirstOrDefault();
                document.docDate = DateTime.ParseExact(del2DateElement.Element("DATUM").Value, "yyyyMMdd", CultureInfo.CurrentCulture);

                XElement del3DateElement = iDocElement.Elements("E1EDK03").ToList().Where(c => c.Element("IDDAT").Value.Equals("025")).FirstOrDefault();
                document.createDate = DateTime.ParseExact(del3DateElement.Element("DATUM").Value, "yyyyMMdd", CultureInfo.CurrentCulture);

                // Sales Order lines
                foreach (var orderLineElement in iDocElement.Elements("E1EDP01").ToList())
                {
                    salesOrderLine line = new salesOrderLine();

                    Int32 lineNum = Convert.ToInt32(orderLineElement.Element("POSEX").Value);

                    Boolean newLine = false;
                    if (update && document.salesOrderLines.Any(c => c.lineNum.Equals(lineNum)))
                    {
                        line = document.salesOrderLines.Where(c => c.lineNum.Equals(lineNum)).FirstOrDefault();
                    }
                    else
                    {
                        line.lineNum = lineNum;
                        newLine      = true;
                    }

                    // Get Item (remove leading zero's)
                    XElement ItemCodeElement = orderLineElement.Elements("E1EDP19").ToList().Where(c => c.Element("QUALF").Value.Equals("002")).FirstOrDefault();

                    String itemCode = RemoveLeadingZeros(ItemCodeElement.Element("IDTNR").Value);
                    String itemName = ItemCodeElement.Element("KTEXT").Value;

                    item item = ItemClass.GetItem(itemCode, companyCode, dc);
                    if (item == null)
                    {
                        item = ItemClass.CreateItem(itemCode, itemName, companyCode);
                    }

                    line.itemId          = item.itemId;
                    line.lineNum         = Convert.ToInt32(orderLineElement.Element("POSEX").Value);
                    line.uomCodeOrg      = orderLineElement.Element("MENEE").Value;
                    line.price           = Convert.ToDecimal(orderLineElement.Element("VPREI").Value, NumberFormatInfo.InvariantInfo);
                    line.itemDescription = itemName;

                    if (orderLineElement.Element("MENGE") != null)
                    {
                        line.quantity = Convert.ToDecimal(orderLineElement.Element("MENGE").Value, NumberFormatInfo.InvariantInfo);
                    }
                    else
                    {
                        line.quantity = 0;
                    }

                    if (orderLineElement.Element("NTGEW") != null)
                    {
                        line.weight = Convert.ToDecimal(orderLineElement.Element("NTGEW").Value, NumberFormatInfo.InvariantInfo);
                    }
                    else
                    {
                        line.weight = 0;
                    }

                    line.lineTypeCode   = orderLineElement.Element("PSTYV").Value;
                    line.lineStatusCode = "O";

                    line.customerReference = String.Empty;
                    line.customerItemCode  = String.Empty;


                    XElement customerItemCodeElement = orderLineElement.Elements("E1EDP19").ToList().Where(c => c.Element("QUALF").Value.Equals("001")).FirstOrDefault();
                    if (customerItemCodeElement != null)
                    {
                        XElement customerItemCodeElement2 = customerItemCodeElement.Element("IDTNR");
                        if (customerItemCodeElement2 != null)
                        {
                            line.customerItemCode = RemoveLeadingZeros(customerItemCodeElement2.Value);
                        }
                    }

                    XElement customerReference = orderLineElement.Elements("E1EDPT1").ToList().Where(c => c.Element("TDID").Value.Equals("0002")).FirstOrDefault();
                    if (customerReference != null)
                    {
                        XElement customerReference2 = customerReference.Element("E1EDPT2");
                        if (customerReference2 != null)
                        {
                            line.customerReference = customerReference2.Element("TDLINE") != null?customerReference2.Element("TDLINE").Value : String.Empty;
                        }
                    }

                    // Line is cancelled when field ABGRU is filled
                    var lineStatusElement = orderLineElement.Element("ABGRU");;
                    if (lineStatusElement != null)
                    {
                        if (!String.IsNullOrWhiteSpace(lineStatusElement.Value))
                        {
                            line.lineStatusCode = "C";
                        }
                    }

                    // ShipDate
                    String deliveryDate = GetSOLineDeliveryDate(orderLineElement);
                    if (!String.IsNullOrEmpty(deliveryDate))
                    {
                        line.deliveryDate = DateTime.ParseExact(deliveryDate, "yyyyMMdd", CultureInfo.CurrentCulture);
                    }

                    // Certificate as Ordered
                    Boolean certAsOrdered = orderLineElement.Elements("E1EDP02").ToList().Any(c => c.Element("QUALF").Value.Equals("902") && c.Element("BELNR").Value.Equals("ZCPT"));
                    line.certOrdered = certAsOrdered;


                    if (newLine)
                    {
                        document.salesOrderLines.Add(line);
                    }
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(String.Format("Error converting Sales Order {0} for company {1} from SAP ECC6 XML format. Error: {2}", document.documentNumber, document.companyCode, ex.Message), "ProcessSalesOrder");
                return(false);
            }

            if (update)
            {
                try
                {
                    dc.SubmitChanges();
                    Trace.WriteLine(String.Format("Updating Sales Order {0} for company {1} Successfull.", document.documentNumber, document.companyCode), "ProcessSalesOrder");
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(String.Format("Error Updating Sales Order {0} for company {1}. Error: {2}", document.documentNumber, document.companyCode, ex.Message), "ProcessSalesOrder");
                    return(false);
                }
            }
            else
            {
                try
                {
                    dc.salesOrders.InsertOnSubmit(document);
                    dc.SubmitChanges();
                    Trace.WriteLine(String.Format("Creating Sales Order {0} for company {1} Successfull.", document.documentNumber, document.companyCode), "ProcessSalesOrder");
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(String.Format("Error Creating Sales Order {0} for company {1}. Error: {2}", document.documentNumber, document.companyCode, ex.Message), "ProcessSalesOrder");
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 29
0
 public static certificateBundle GetCurrentBundle(Int32 businessPartnerId, DALPortalDataContext dc)
 {
     return(dc.certificateBundles.Where(c => c.businessPartnerId.Equals(businessPartnerId)).Where(r => r.isActive).SingleOrDefault());
 }
Ejemplo n.º 30
0
        public static Boolean ProcessDelivery(String fileContent, out delivery deliveryDocument)
        {
            deliveryDocument = new delivery();
            List <batch> batches       = new List <batch>();
            String       sapECC6DocNum = String.Empty;

            DALPortalDataContext dc = new DALPortalDataContext();
            Boolean update;
            Boolean returnValue = true;

            try
            {
                List <String> items = new List <String>();

                XDocument xmldoc          = XDocument.Parse(fileContent);
                XElement  docTypeElement  = xmldoc.Element("DELVRY03");
                XElement  iDocElement     = docTypeElement.Element("IDOC");
                XElement  deliveryElement = iDocElement.Element("E1EDL20");

                // Company
                String sectionCode = deliveryElement.Element("VKORG").Value;
                String companyCode = CompanyClass.GetCompanyBasedOnSection(sectionCode, dc);


                sapECC6DocNum = RemoveLeadingZeros(deliveryElement.Element("VBELN").Value);

                // Check if Sales Order already exists
                deliveryDocument = dc.deliveries.Where(c => c.documentNumber.Equals(sapECC6DocNum) && c.companyCode.Equals(companyCode)).FirstOrDefault();
                if (deliveryDocument == null)
                {
                    deliveryDocument                = new delivery();
                    deliveryDocument.companyCode    = companyCode;
                    deliveryDocument.documentNumber = sapECC6DocNum;
                    deliveryDocument.docStatusCode  = "O";
                    update = false;
                }
                else
                {
                    update = true;
                }

                // Document Header info
                String          sapECC6BusinessPartnerCode = RemoveLeadingZeros(deliveryElement.Elements("E1ADRM1").Where(c => c.Element("PARTNER_Q").Value.Equals("AG")).FirstOrDefault().Element("PARTNER_ID").Value);
                businessPartner bp = Objects.BusinessPartnerClass.GetBusinessPartner(sapECC6BusinessPartnerCode, deliveryDocument.companyCode, dc);
                if (bp == null)
                {
                    throw new Exception(String.Format("BusinessPartner {0} does not exists.", sapECC6BusinessPartnerCode));
                }


                // Get BusinessPartnerID
                deliveryDocument.businessPartnerId = bp.businessPartnerId;

                // Dates
                XElement delDateElement = deliveryElement.Elements("E1EDT13").ToList().Where(c => c.Element("QUALF").Value.Equals("007")).FirstOrDefault();
                deliveryDocument.deliveryDate = DateTime.ParseExact(delDateElement.Element("NTEND").Value, "yyyyMMdd", CultureInfo.CurrentCulture);


                XElement del2DateElement = deliveryElement.Elements("E1EDT13").ToList().Where(c => c.Element("QUALF").Value.Equals("015")).FirstOrDefault();
                deliveryDocument.docDate    = DateTime.ParseExact(del2DateElement.Element("NTEND").Value, "yyyyMMdd", CultureInfo.CurrentCulture);
                deliveryDocument.createDate = DateTime.ParseExact(del2DateElement.Element("NTEND").Value, "yyyyMMdd", CultureInfo.CurrentCulture);

                if (deliveryDocument.deliveryDate < DateTime.Now.AddYears(-50))
                {
                    deliveryDocument.deliveryDate = deliveryDocument.docDate;
                }

                //// Delivery lines
                List <XElement> deliveryLines    = deliveryElement.Elements("E1EDL24").Where(c => c.Element("HIPOS") == null).ToList();
                List <XElement> deliverySubLines = deliveryElement.Elements("E1EDL24").Where(c => c.Element("HIPOS") != null).ToList();

                foreach (var deliveryLineElement in deliveryLines)
                {
                    deliveryLine line = new deliveryLine();

                    String lineNumString = deliveryLineElement.Element("POSNR").Value;
                    Int32  lineNum       = Convert.ToInt32(lineNumString);

                    Boolean newLine = false;
                    if (update && deliveryDocument.deliveryLines.Any(c => c.lineNum.Equals(lineNum)))
                    {
                        line = deliveryDocument.deliveryLines.Where(c => c.lineNum.Equals(lineNum)).FirstOrDefault();
                    }
                    else
                    {
                        line.lineNum = lineNum;
                        newLine      = true;
                    }

                    // DeliveryLine is not connected to a Sales Order
                    if (deliveryLineElement.Element("VGBEL") == null)
                    {
                        continue;
                    }

                    String sapSODocNum  = RemoveLeadingZeros(deliveryLineElement.Element("VGBEL").Value);
                    Int32  sapSOLineNum = Convert.ToInt32(deliveryLineElement.Element("VGPOS").Value);

                    salesOrderLine salesOrderLine = Objects.SalesOrderClass.GetSalesOrderLine(sapSODocNum, lineNum, companyCode, dc);

                    if (salesOrderLine == null)
                    {
                        Trace.WriteLine(String.Format("Cannot find Sales Order {0}, Line {1} for Delivery {2}.", sapSODocNum, sapSOLineNum, sapECC6DocNum), "MapDeliveryXMLToSBO");
                        returnValue = false;
                        continue;
                    }

                    String itemCode = RemoveLeadingZeros(deliveryLineElement.Element("MATNR").Value);
                    item   item     = Objects.ItemClass.GetItem(itemCode, companyCode, dc);

                    // Get POSTYPE
                    String   posType     = deliveryLineElement.Element("E1EDL26").Element("PSTYV").Value;
                    XElement baseLineNum = deliveryLineElement.Element("HIPOS");

                    // Add Batchinfo
                    Decimal quantity = Convert.ToDecimal(deliveryLineElement.Element("LFIMG").Value, NumberFormatInfo.InvariantInfo);

                    if (lineNumString.Substring(0, 1).Equals("9"))
                    {
                        continue;
                    }

                    if (Serac.BasicFunctions.Right(itemCode, 1).Equals("B") && (posType == "ZBNI" || posType == "ZCNI"))
                    {
                        // Get Quantity and Batches from Treatment line
                        GetBatchesTreatmentLine(ref batches, ref quantity, line.lineNum, deliverySubLines, item.itemId);
                    }
                    else if (quantity > 0)
                    {
                        GetBatch(ref batches, line.lineNum, deliveryLineElement, quantity, item.itemId);
                    }
                    else
                    {
                        // Get Quantity and Batches from "Charge Splitsing"
                        GetBatchesChargeSplitsing(ref batches, ref quantity, line.lineNum, deliverySubLines, item.itemId);
                    }

                    // Update Currency from base document
                    if (deliveryDocument.currencyCode == null)
                    {
                        deliveryDocument.currencyCode = salesOrderLine.salesOrder.currencyCode;
                        deliveryDocument.currencyRate = salesOrderLine.salesOrder.currencyRate;
                    }

                    line.baseDocId   = salesOrderLine.salesOrder.docId;
                    line.baseLineNum = Convert.ToInt32(deliveryLineElement.Element("VGPOS").Value);
                    line.baseDocType = "SO";

                    line.quantity        = quantity;
                    line.itemId          = item.itemId;
                    line.lineStatusCode  = "O";
                    line.itemDescription = salesOrderLine.itemDescription;

                    // Get Certificates as ordered from base document
                    line.certOrdered = salesOrderLine.certOrdered;

                    // Add Line to SBO delivery line
                    if (newLine)
                    {
                        deliveryDocument.deliveryLines.Add(line);
                    }
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(String.Format("Error Converting Delivery XML to WebPortal format. Error: {0}", ex.Message), "ProcessDelivery");
                return(false);
            }

            if (deliveryDocument.deliveryLines.Count == 0)
            {
                return(false);
            }

            if (update)
            {
                try
                {
                    dc.SubmitChanges();
                    Trace.WriteLine(String.Format("Updating Delivery {0} for company {1} Successfull.", deliveryDocument.documentNumber, deliveryDocument.companyCode), "ProcessDelivery");
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(String.Format("Error Updating Delivery {0} for company {1}. Error: {2}", deliveryDocument.documentNumber, deliveryDocument.companyCode, ex.Message), "ProcessDelivery");
                    return(false);
                }
            }
            else
            {
                try
                {
                    dc.deliveries.InsertOnSubmit(deliveryDocument);
                    dc.SubmitChanges();
                    Trace.WriteLine(String.Format("Creating Delivery {0} for company {1} Successfull.", deliveryDocument.documentNumber, deliveryDocument.companyCode), "ProcessDelivery");
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(String.Format("Error Creating Delivery {0} for company {1}. Error: {2}", deliveryDocument.documentNumber, deliveryDocument.companyCode, ex.Message), "ProcessDelivery");
                    return(false);
                }
            }

            if (!ProcessBatches(deliveryDocument, batches))
            {
                return(false);
            }

            return(returnValue);
        }