Beispiel #1
0
        private TransportOfferListDTO TransportDTOtoList(TransportOfferDTO dto)
        {
            var res = new TransportOfferListDTO();

            res.Currency       = dto.TradeInfo.Price.Currency.Name;
            res.DocumentNo     = dto.OfferNo;
            res.Driver         = dto.Driver;
            res.Fracht         = Math.Round(dto.TradeInfo.Price.Price, 2).ToString();
            res.LoadDate       = bp.shared.DateHelp.DateHelpful.FormatDateToYYYYMMDD(dto.Load.Date);
            res.LoadPlace      = dto.Load.Locality;
            res.LoadPostalCode = dto.Load.PostalCode;
            res.Seller         = dto.TradeInfo.Company.Short_name;

            if (dto.InvoiceSellId.HasValue)
            {
                res.StatusCode = "FS";
            }

            res.Id               = dto.TransportOfferId.Value;
            res.UnloadDate       = bp.shared.DateHelp.DateHelpful.FormatDateToYYYYMMDD(dto.Unload.Date);
            res.UnloadPlace      = dto.Unload.Locality;
            res.UnloadPostalCode = dto.Unload.PostalCode;


            return(res);
        }
Beispiel #2
0
        private async Task TransportOfferMapper(TransportOffer dbTrans, TransportOfferDTO tDTO)
        {
            //if(dbTrans.Company==null || dbTrans.CompanyId!=tDTO.TradeInfo.Company.CompanyId)
            //{
            //    dbTrans.Company =await this._db.Company.FirstOrDefaultAsync(f => f.CompanyId == tDTO.TradeInfo.Company.CompanyId);

            //}

            //if (dbTrans.Company == null) {
            //    dbTrans.Company = new Company();
            //    _db.Entry(dbTrans.Company).State = EntityState.Added;
            //}
            dbTrans.Company = await this._companyService.CompanyMapper(dbTrans.Company, tDTO.TradeInfo.Company);

            dbTrans.Driver = string.IsNullOrWhiteSpace(tDTO.Driver) ? null : tDTO.Driver;
            if (dbTrans.CurrencyNbp == null)
            {
                dbTrans.CurrencyNbp = new CurrencyNbp();
                _db.Entry(dbTrans.CurrencyNbp).State = EntityState.Added;
            }
            this._invoiceService.MapperCurrencyNb(dbTrans.CurrencyNbp, tDTO.TradeInfo.Price);

            dbTrans.Date = tDTO.TradeInfo.Date;
            dbTrans.Info = tDTO.Info;
            var dbLoadAdd = dbTrans.Load ?? new TransportOfferAddress();

            //load
            if (dbTrans.Load == null)
            {
                dbTrans.Load = new TransportOfferAddress();
                _db.Entry(dbTrans.Load).State = EntityState.Added;
            }
            this.TransportOfferAddressMapper(dbTrans.Load, tDTO.Load);


            dbTrans.OfferNo = tDTO.OfferNo;

            var dbPaymentTerms = dbTrans.PaymentTerms ?? new PaymentTerms();

            this._invoiceService.MapperPaymentTerms(dbPaymentTerms, tDTO.TradeInfo.PaymentTerms);
            if (dbTrans.PaymentTerms == null)
            {
                dbPaymentTerms.TransportOffer        = dbTrans;
                this._db.Entry(dbPaymentTerms).State = EntityState.Added;
            }

            //unload
            if (dbTrans.Unload == null)
            {
                dbTrans.Unload = new TransportOfferAddress();
                _db.Entry(dbTrans.Unload).State = EntityState.Added;
            }
            this.TransportOfferAddressMapper(dbTrans.Unload, tDTO.Unload);

            this._commonFunctions.CreationInfoUpdate((CreationInfo)dbTrans, tDTO.CreationInfo, User);
        }
Beispiel #3
0
        private async void BtnSumbit_Click(object sender, EventArgs e)
        {
            if (txtboxPanel.Controls.OfType <TextBox>().ToArray().Any(txt => string.IsNullOrEmpty(txt.Text)) || offerThum.Image == null)
            {
                return;
            }
            var company = await new APIService("transportcompany").
                          GetById <TransportCompanyDTO>(int.Parse(cmbBox_TransportCompany.SelectedValue.ToString()));

            if (company == null)
            {
                return;
            }
            TransportOfferInsertRequest request = new TransportOfferInsertRequest
            {
                TransportCompanyId = int.Parse(cmbBox_TransportCompany.SelectedValue.ToString()),
                CityId             = int.Parse(cmbBox_CityDestination.SelectedValue.ToString()),
                Price     = float.Parse(txtbox_Price.Text),
                Discount  = int.Parse(txtbox_Discount.Text),
                StartDate = DateTime.Parse(txtBox_StartDate.Text),
                EndDate   = DateTime.Parse(txtbox_EndDate.Text),
                IsActive  = txtBox_Active.Text == "YES"?true:false
            };

            if (_id.HasValue)
            {
                var offer = await _service.GetById <TransportOfferDTO>(_id.Value);

                request.CityId = offer.CityId;
            }

            var image = new Bitmap(offerThum.Image, 400, 400);

            using (var newStream = new MemoryStream())
            {
                image.Save(newStream, ImageFormat.Png);
                request.ThumbnailImage = newStream.ToArray();
            }

            TransportOfferDTO res = null;

            if (_id.HasValue)
            {
                res = await _service.Update <TransportOfferDTO>(_id.Value, request);
            }
            else
            {
                res = await _service.Insert <TransportOfferDTO>(request);
            }
            var message = (res != null) ? "Successufully added new transport offer" : "Error: couldn't add new transport offer";

            MessageBox.Show(message);
        }
Beispiel #4
0
        public async Task <IActionResult> Put(int id, [FromBody] TransportOfferDTO tDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var dbTrans = new TransportOffer();

            if (id == 0)
            {
                await this.TransportOfferMapper(dbTrans, tDTO);

                this._db.Entry(dbTrans).State = EntityState.Added;
            }
            else
            {
                dbTrans = await this.TransportOfferQueryable()
                          .FirstOrDefaultAsync(f => f.TransportOfferId == id);

                if (dbTrans == null)
                {
                    return(BadRequest(bp.sharedLocal.ModelStateHelpful.ModelStateHelpful.ModelError("Error", $"Nie znaleziono transportu o Id: {id}")));
                }

                await this.TransportOfferMapper(dbTrans, tDTO);
            }

            try
            {
                await this._db.SaveChangesAsync();
            }
            catch (Exception e)
            {
                throw e;
            }



            return(NoContent());
        }
Beispiel #5
0
        private TransportOfferDTO EtDTOTransportOffer(TransportOffer dbTrans)
        {
            var res = new TransportOfferDTO();

            res.CreationInfo  = new bp.shared.CommonFunctions().EtDTOCreationInfoMapper((CreationInfo)dbTrans);
            res.Driver        = dbTrans.Driver;
            res.Info          = dbTrans.Info;
            res.InvoiceSellId = dbTrans.InvoiceSell != null ? dbTrans.InvoiceSellId : null;
            res.InvoiceSellNo = dbTrans.InvoiceSell?.InvoiceNo;
            res.Load          = this.EtDTOTransportOfferAddress(dbTrans.Load);
            res.OfferNo       = dbTrans.OfferNo;
            res.TradeInfo     = new TradeInfoDTO();


            res.TradeInfo.Company      = this._companyService.EtDTOCompany(dbTrans.Company);
            res.TradeInfo.Date         = dbTrans.Date;
            res.TradeInfo.PaymentTerms = this._invoiceService.EtoDTOPaymentTerms(dbTrans.PaymentTerms);
            res.TradeInfo.Price        = this._invoiceService.EtoDTOCurrencyNbp(dbTrans.CurrencyNbp);

            res.TransportOfferId = dbTrans.TransportOfferId;
            res.Unload           = this.EtDTOTransportOfferAddress(dbTrans.Unload);

            return(res);
        }
Beispiel #6
0
        private async Task UpdateInvoiceSell(InvoiceSell dbInv, TransportOfferDTO dto)
        {
            var tradeInfoDTO = dto.TradeInfo;

            if (dbInv.Buyer == null || dbInv.BuyerId != tradeInfoDTO.Company.CompanyId)
            {
                //dbInv.Buyer = await this._db.Company.FirstOrDefaultAsync(f => f.CompanyId == tradeInfoDTO.Company.CompanyId);
                dbInv.Buyer = await this._companyService.CompanyMapper(dbInv.Buyer, dto.TradeInfo.Company);
            }
            if (dto.InvoiceInPLN)
            {
                dbInv.Currency = this._invoiceService._currencyList.FirstOrDefault(f => f.Name == "PLN");
            }
            else
            {
                dbInv.Currency = this._invoiceService._currencyList.FirstOrDefault(f => f.CurrencyId == tradeInfoDTO.Price.Currency.CurrencyId);
            }

            dbInv.DateOfIssue = DateTime.Now;
            var extraInfo = dbInv.ExtraInfo ?? new InvoiceExtraInfo();

            extraInfo.LoadNo = dto.OfferNo;
            if (dbInv.ExtraInfo == null)
            {
                extraInfo.InvoiceSell           = dbInv;
                this._db.Entry(extraInfo).State = EntityState.Added;
            }

            dbInv.InvoiceNo = await this._invoiceService.GetNextInvoiceNo(dto.TradeInfo.Date);

            //invoice pos
            var price  = dto.InvoiceInPLN ? tradeInfoDTO.Price.PlnValue: tradeInfoDTO.Price.Price;
            var brutto = Math.Round(price * 1.23, 2);

            var itemName = $"Usługa transportowa ({dto.Load.PostalCode} - {dto.Unload.PostalCode})";

            var dbPos  = new InvoicePos();
            var posDTO = new InvoiceLineDTO
            {
                Brutto_value     = brutto,
                Measurement_unit = "szt",
                //Name = $"Usługa transportowa",
                Name           = itemName,
                Netto_value    = price,
                Quantity       = 1,
                Unit_price     = price,
                Vat_rate       = "23",
                Vat_unit_value = brutto - price,
                Vat_value      = brutto - price
            };

            this._invoiceService.MapperLine(dbPos, posDTO);
            if (dbInv.InvoicePosList == null || dbInv.InvoicePosList.Count == 0)
            {
                dbPos.InvoiceSell           = dbInv;
                this._db.Entry(dbPos).State = EntityState.Added;
            }
            else
            {
                dbPos = dbInv.InvoicePosList.FirstOrDefault();
                this._invoiceService.MapperLine(dbPos, posDTO);
            }

            var dbTotal = dbInv.InvoiceTotal ?? new InvoiceTotal();

            dbTotal.TotalBrutto = brutto;
            dbTotal.TotalNetto  = price;
            dbTotal.TotalTax    = brutto - price;
            if (dbInv.InvoiceTotal == null)
            {
                dbTotal.InvoiceSell           = dbInv;
                this._db.Entry(dbTotal).State = EntityState.Added;
            }

            var dbPaymentTerms = dbInv.PaymentTerms ?? new PaymentTerms();

            this._invoiceService.MapperPaymentTerms(dbPaymentTerms, tradeInfoDTO.PaymentTerms);
            if (dbInv.PaymentTerms == null)
            {
                dbPaymentTerms.InvoiceSell           = dbInv;
                this._db.Entry(dbPaymentTerms).State = EntityState.Added;
            }


            if (dbInv.RatesValuesList == null || dbInv.RatesValuesList.Count == 0)
            {
                var dbRate = new RateValue();
                dbRate.BruttoValue = brutto;
                dbRate.NettoValue  = price;
                dbRate.VatRate     = "23";
                dbRate.VatValue    = brutto - price;

                dbRate.InvoiceSell           = dbInv;
                this._db.Entry(dbRate).State = EntityState.Added;
            }
            else
            {
                var dbRate = dbInv.RatesValuesList.FirstOrDefault();
                dbRate.BruttoValue = brutto;
                dbRate.NettoValue  = price;
                dbRate.VatRate     = "23";
                dbRate.VatValue    = brutto - price;
            }

            if (dbInv.Seller == null)
            {
                dbInv.Seller = await this._companyService.Owner();
            }
            dbInv.SellingDate = dto.TradeInfo.Date;

            var dbInvTotal = dbInv.InvoiceTotal ?? new InvoiceTotal();

            dbInvTotal.TotalBrutto = brutto;
            dbInvTotal.TotalNetto  = tradeInfoDTO.Price.Price;
            dbInvTotal.TotalTax    = brutto - tradeInfoDTO.Price.Price;
            if (dbInv.InvoiceTotal == null)
            {
                dbInvTotal.InvoiceSell           = dbInv;
                this._db.Entry(dbInvTotal).State = EntityState.Added;
            }
        }