示例#1
0
        protected void submitButton_Click(object sender, EventArgs e)
        {
            // Clear all sisters
            List <Int32> businessPartners = dc.businessPartners.Where(c => c.bpMother.Equals(businessPartnerId)).Select(c => c.businessPartnerId).ToList();

            foreach (Int32 bpId in businessPartners)
            {
                businessPartner bp = dc.businessPartners.Where(c => c.businessPartnerId.Equals(bpId)).Select(c => c).SingleOrDefault();
                bp.bpMother = null;
            }

            // Add sisters
            List <String> selectedListItems = RadListBoxDestination.Items.Select(c => c.Value).ToList();

            foreach (String selectedBp in selectedListItems)
            {
                businessPartner bp = dc.businessPartners.Where(c => c.businessPartnerId.Equals(Convert.ToInt32(selectedBp))).Select(c => c).SingleOrDefault();
                bp.bpMother = businessPartnerId;
            }

            dc.SubmitChanges();

            Session["businessPartnerId"] = businessPartnerId;
            Response.Redirect("~/Pages/CustomerAccountDetails.aspx");
        }
示例#2
0
        protected void selectSistersButton_Click(object sender, EventArgs e)
        {
            businessPartner bp          = dc.businessPartners.Where(c => c.businessPartnerId.Equals(businessPartnerId)).Select(c => c).SingleOrDefault();
            var             bpRolesList = dc.businessPartnerApplications.Where(c => c.businessPartnerId.Equals(businessPartnerId));

            foreach (var detail in bpRolesList)
            {
                dc.businessPartnerApplications.DeleteOnSubmit(detail);
            }
            if (certificatesCheckBox.Checked)
            {
                businessPartnerApplication bpRoleCert = new businessPartnerApplication();
                bpRoleCert.businessPartnerId = businessPartnerId;
                bpRoleCert.applicationCode   = "CERT";
                dc.businessPartnerApplications.InsertOnSubmit(bpRoleCert);
            }

            if (dopCheckBox.Checked)
            {
                businessPartnerApplication bpRoleDop = new businessPartnerApplication();
                bpRoleDop.businessPartnerId = businessPartnerId;
                bpRoleDop.applicationCode   = "DOP";
                dc.businessPartnerApplications.InsertOnSubmit(bpRoleDop);
            }
            bp.isMother       = checkBoxMother.Checked;
            bp.accountManager = new Guid(accountManagerDDL.SelectedValue);
            dc.SubmitChanges();

            Session["businessPartnerId"] = businessPartnerId;
            Response.Redirect("~/Pages/SelectSisters.aspx");
        }
示例#3
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);
            }
        }
示例#4
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);
        }
示例#5
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);
        }
示例#6
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);
        }
示例#7
0
        public void CreateUsers(businessPartner customer, String companyCode, DALPortalDataContext dc)
        {
            foreach (var contactPerson in customer.contactPersons.Where(c => c.businessPartnerId.Equals(customer.businessPartnerId)))
            {
                try
                {
                    if (contactPerson.eMail == null)
                    {
                        continue;
                    }

                    MembershipUser user = Membership.GetUser(contactPerson.eMail);

                    Boolean newUser = (user == null);
                    Guid    newUserId;
                    String  password = String.Empty;

                    if (newUser && contactPerson.isWebContact)
                    {
                        object akey = Guid.NewGuid();
                        password = GeneratePassword.Generate(10, 10);

                        Membership.CreateUser(contactPerson.eMail, password, contactPerson.eMail);
                        Roles.AddUserToRole(contactPerson.eMail, "User");
                    }

                    if (contactPerson.userId == null && contactPerson.isWebContact)
                    {
                        newUserId = dc.Users.Where(c => c.UserName.ToLower().Equals(contactPerson.eMail.ToLower())).Select(c => c.UserId).FirstOrDefault();

                        contactPerson.userId = newUserId;

                        dc.contactPersons.Where(c => c.contactPersonCode.Equals(contactPerson.contactPersonCode)).FirstOrDefault().userId = newUserId;
                        dc.SubmitChanges();
                    }

                    // Contact person in database, but not in xml file
                    if (contactPerson.TMP_PortalAccess == null)
                    {
                        dc.contactPersons.Where(c => c.contactPersonCode.Equals(contactPerson.contactPersonCode)).FirstOrDefault().isWebContact = false;
                        dc.SubmitChanges();
                    }

                    // Deactivate the user account
                    // Existing user which is not a webcontact anymore or when user is not in file anymore.
                    if ((!newUser && !contactPerson.isWebContact) || contactPerson.TMP_PortalAccess == null)
                    {
                        if (user != null)
                        {
                            if (user.IsApproved == true)
                            {
                                user.IsApproved = false;
                                Membership.UpdateUser(user);
                            }
                        }
                    }

                    // Activate the user account
                    if (!newUser && contactPerson.isWebContact && contactPerson.TMP_PortalAccess != null)
                    {
                        if (user.IsApproved == false)
                        {
                            user.IsApproved = true;
                            Membership.UpdateUser(user);
                        }
                    }

                    if (contactPerson.userId.HasValue)
                    {
                        UpdateApplicationRoles(contactPerson, dc);
                    }

                    if (newUser && contactPerson.isWebContact)
                    {
                        // Send Email
                        SendMail(contactPerson.eMail, password, companyCode);
                    }
                }
                catch (Exception ex)
                {
                    Trace.WriteLine("An error occurred while creating user: "******". Error: " + ex.Message, "CreateUsers");
                }
            }
        }
示例#8
0
        public Boolean ProcessDataFromXML(String databaseName, String fileContent)
        {
            Boolean returnValue = true;

            try
            {
                // Check xml type

                // SAPECC6
                if (fileContent.Contains("IDOC"))
                {
                    businessPartner      customer = new businessPartner();
                    DALPortalDataContext dc       = new DALPortalDataContext();
                    String companyCode;

                    //Customer
                    if (fileContent.Contains("DEBMAS03"))
                    {
                        if (!XMLSAPECC6Processor.ProcessCustomer(fileContent, out customer, out companyCode))
                        {
                            return(false);
                        }

                        CreateUsers(customer, companyCode, dc);
                    }
                    //SalesOrder
                    if (fileContent.Contains("ORDERS05"))
                    {
                        salesOrder document = new salesOrder();

                        if (!XMLSAPECC6Processor.ProcessSalesOrder(fileContent, out document))
                        {
                            return(false);
                        }
                    }
                    //Delivery
                    if (fileContent.Contains("DELVRY03"))
                    {
                        delivery document = new delivery();

                        if (!XMLSAPECC6Processor.ProcessDelivery(fileContent, out document))
                        {
                            return(false);
                        }
                    }

                    //Item
                    if (fileContent.Contains("MATMAS05"))
                    {
                        if (!XMLSAPECC6Processor.ProcessItem(fileContent))
                        {
                            return(false);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(String.Format("Process XML file Failed. Error: {0}", ex.Message), "ProcessDataFromXML");
                return(false);
            }

            return(returnValue);
        }
        protected void RadSaveButton_Click(object sender, EventArgs e)
        {
            DALPortalDataContext dc        = new DALPortalDataContext();
            certificateBundle    bundleOld = dc.certificateBundles.Where(c => c.businessPartnerId.Equals(bpId) && c.isActive.Equals(true)).SingleOrDefault();

            if (bundleOld != null)
            {
                bundleOld.isActive = false;
            }
            certificateBundle bundelNew = new certificateBundle();

            if (bundleOld != null)
            {
                bundelNew.previousCertQty  = bundleOld.actualCertQty;
                bundelNew.actualCertQty    = (Int32)creditsOrderTxtBox.Value + bundleOld.actualCertQty;
                bundelNew.orderedCertQty   = bundleOld.orderedCertQty + (Int32)creditsOrderTxtBox.Value;
                bundelNew.certificatePrice = bundleOld.certificatePrice;
            }
            else
            {
                bundelNew.previousCertQty  = 0;
                bundelNew.actualCertQty    = (Int32)creditsOrderTxtBox.Value;
                bundelNew.orderedCertQty   = (Int32)creditsOrderTxtBox.Value;
                bundelNew.certificatePrice = (decimal)7.50;
            }

            bundelNew.startDate  = DateTime.Now;
            bundelNew.expireDate = DateTime.Now.AddYears(1);

            bundelNew.isActive          = true;
            bundelNew.modelId           = 2;
            bundelNew.companyCode       = "ZW";
            bundelNew.businessPartnerId = bpId;

            businessPartner bpProps = dc.businessPartners.Where(c => c.businessPartnerId.Equals(bpId)).Select(c => c).SingleOrDefault();


            DocumentCached cashed = new DocumentCached();

            cashed.CustomerCode = bpProps.bpCode;
            cashed.VLCompany    = "ZW01";
            cashed.DocDate      = DateTime.Now;
            cashed.Comment      = "Certificate portal invoice";

            DocumentLineCached cashedLine = new DocumentLineCached();

            cashedLine.Currency      = "EUR";
            cashedLine.LineNum       = 1;
            cashedLine.ItemCode      = "C";
            cashedLine.Quantity      = (Int32)creditsOrderTxtBox.Value;
            cashedLine.UnitOfMeasure = "ST";
            cashedLine.Price         = (decimal)bundelNew.certificatePrice;
            cashedLine.ShortText     = creditsOrderTxtBox.Value + " ordered on " + DateTime.Now + ".";
            cashed.Lines.Add(cashedLine);
            dc.certificateBundles.InsertOnSubmit(bundelNew);

            dc.SubmitChanges();

            XmlToObject.ObjectToXml(cashed, HttpContext.Current.Server.MapPath(Path.Combine(@"~\Files\Outbox", "invoice " + DateTime.Now.Ticks.ToString() + ".xml")));


            MembershipUser membershipUser = Membership.GetUser();

            if (membershipUser != null)
            {
                String emailTemplate = HttpContext.Current.Server.MapPath(Path.Combine(@"~\Files\EmailTemplates", "OrderConfirmation.html"));

                StreamReader streamReader    = new StreamReader(emailTemplate);
                String       mailMessageBody = streamReader.ReadToEnd();

                String fromEmailAddress;
                String subject;
                String toEmailAddress;

                mailMessageBody = EmailClass.GetMailParams(mailMessageBody, out fromEmailAddress, out toEmailAddress, out subject);
                mailMessageBody = mailMessageBody.Replace("{Credits}", membershipUser.UserName);
                try
                {
                    MailMessage mailMessage = new MailMessage();
                    mailMessage.IsBodyHtml = true;
                    mailMessage.From       = new MailAddress(fromEmailAddress);
                    mailMessage.To.Add(membershipUser.UserName);
                    mailMessage.Subject = subject;
                    mailMessage.Body    = mailMessageBody;
                    SmtpClient smtpClient = new SmtpClient();
                    smtpClient.Send(mailMessage);
                }
                catch (Exception ex)
                {
                    // TODO: Create errorpage for user
                    Response.Redirect("~/Pages/OrderSuccess.aspx");
                }
            }



            Session["businessPartnerId"] = bpId;
            Response.Redirect("~/Pages/OrderSuccess.aspx");
        }