Esempio n. 1
0
        public IActionResult Contact(int id, int partyId, int partyType)
        {
            Core.Domain.Contact contact = _salesService.GetContacyById(id);

            var contactDto = new Dto.Common.Contact();
            var partyDto   = new Dto.Common.Party();

            partyDto.Email   = contact.Party.Email;
            partyDto.Fax     = contact.Party.Fax;
            partyDto.Phone   = contact.Party.Phone;
            partyDto.Website = contact.Party.Website;
            partyDto.Id      = contact.Party.Id;

            contactDto.FirstName = contact.FirstName;
            contactDto.LastName  = contact.LastName;
            contactDto.Id        = contact.Id;
            contactDto.Party     = partyDto;

            contactDto.HoldingPartyType = partyType;
            contactDto.HoldingPartyId   = partyId;


            //contactDto.Party = contact.Party;
            return(new ObjectResult(contactDto));
        }
Esempio n. 2
0
        public IActionResult SaveContact([FromBody] Dto.Common.Contact model)
        {
            string[] errors = null;
            try
            {
                Core.Domain.Contact contact = null;


                if (model.Id == 0)
                {
                    contact       = new Core.Domain.Contact();
                    contact.Party = new Core.Domain.Party()
                    {
                        PartyType = Core.Domain.PartyTypes.Customer,
                    };
                }
                else
                {
                    contact = _salesService.GetContacyById(model.Id);
                }
                //Contact
                contact.Id          = model.Id;
                contact.ContactType = (Core.Domain.ContactTypes)model.HoldingPartyType; // customer or vendor
                contact.FirstName   = model.FirstName;
                contact.MiddleName  = model.MiddleName;
                contact.LastName    = model.LastName;
                //Party

                contact.Party.Website = model.Party.Website;
                contact.Party.Email   = model.Party.Email;
                contact.Party.Phone   = model.Party.Phone;

                if (contact.Id > 0)
                {
                    _salesService.SaveContact(contact);
                    //_salesService.UpdateContact(contact);
                }
                else
                {
                    if (model.HoldingPartyType == 1)
                    {
                        var customer = _salesService.GetCustomerById(model.HoldingPartyId);

                        if (customer.PrimaryContact == null)
                        {
                            customer.PrimaryContact = contact;
                        }

                        var customerContact = new Core.Domain.CustomerContact();
                        customerContact.Contact       = contact;
                        customerContact.Contact.Party = contact.Party;
                        customerContact.CustomerId    = customer.Id;
                        customer.CustomerContact.Add(customerContact);
                        _salesService.UpdateCustomer(customer);
                    }
                    else
                    {
                        var vendor = _purchasingService.GetVendorById(model.HoldingPartyId);

                        if (vendor.PrimaryContact == null)
                        {
                            vendor.PrimaryContact = contact;
                        }

                        var vendorContact = new Core.Domain.VendorContact();
                        vendorContact.Contact       = contact;
                        vendorContact.Contact.Party = contact.Party;
                        vendorContact.VendorId      = vendor.Id;
                        vendor.VendorContact.Add(vendorContact);
                        _purchasingService.UpdateVendor(vendor);
                    }
                }



                return(new ObjectResult(Ok()));
            }
            catch (Exception ex)
            {
                errors = new string[1] {
                    ex.InnerException != null ? ex.InnerException.Message : ex.Message
                };
                return(new BadRequestObjectResult(errors));
            }
        }