Inheritance: TransportationBillBase
Esempio n. 1
0
 public void InitPageParameter(bool isPopup, TransportationBill transportationBill)
 {
     if (isPopup)
     {
         this.billNo = transportationBill.BillNo;
         this.tbPartyCode.Visible = false;
         this.ltlParty.Text = transportationBill.BillAddress.Party.Name;
         this.ltlParty.Visible = true;
         this.IsRelease.Visible = false;
         this.btnConfirm.Visible = false;
         this.btnBack.Visible = false;
         this.btnAddDetail.Visible = true;
         this.btnClose.Visible = true;
     }
 }
 public void UpdateTransportationBill(TransportationBill transportationBill, string userCode)
 {
     this.UpdateTransportationBill(transportationBill, this.userMgr.CheckAndLoadUser(userCode));
 }
 public void ReleaseTransportationBill(TransportationBill transportationBill, User user)
 {
     this.ReleaseTransportationBill(transportationBill.BillNo, user);
 }
 public void ReleaseTransportationBill(TransportationBill transportationBill, string userCode)
 {
     this.ReleaseTransportationBill(transportationBill.BillNo, this.userMgr.CheckAndLoadUser(userCode));
 }
 public void DeleteTransportationBill(TransportationBill transportationBill, User user)
 {
     this.DeleteTransportationBill(transportationBill.BillNo, user);
 }
        public IList<TransportationBill> CreateTransportationBill(IList<TransportationActBill> transportationActBillList, User user, string status, decimal discount)
        {
            if (status != BusinessConstants.CODE_MASTER_STATUS_VALUE_CREATE
                && status != BusinessConstants.CODE_MASTER_STATUS_VALUE_SUBMIT
                && status != BusinessConstants.CODE_MASTER_STATUS_VALUE_CLOSE)
            {
                throw new TechnicalException("status specified is not valided");
            }

            if (transportationActBillList == null || transportationActBillList.Count == 0)
            {
                throw new BusinessErrorException("TransportationBill.Error.EmptyBillDetails");
            }

            DateTime dateTimeNow = DateTime.Now;
            IList<TransportationBill> transportationBillList = new List<TransportationBill>();

            foreach (TransportationActBill transportationActBill in transportationActBillList)
            {
                TransportationActBill oldTransportationActBill = this.transportationActBillMgr.LoadTransportationActBill(transportationActBill.Id);
                oldTransportationActBill.CurrentBillQty = transportationActBill.CurrentBillQty;
                oldTransportationActBill.CurrentBillAmount = transportationActBill.CurrentBillAmount;
                oldTransportationActBill.CurrentDiscount = transportationActBill.CurrentDiscount;

                TransportationBill transportationBill = null;

                #region ���Һʹ�����ϸ��billAddress��currencyһ�µ�TransportationBillMstr
                foreach (TransportationBill thisTransportationBill in transportationBillList)
                {
                    if (thisTransportationBill.BillAddress.Code == oldTransportationActBill.BillAddress.Code
                        && thisTransportationBill.Currency.Code == oldTransportationActBill.Currency.Code)
                    {
                        transportationBill = thisTransportationBill;
                        break;
                    }
                }
                #endregion

                #region û���ҵ�ƥ���TransportationBill���½�
                if (transportationBill == null)
                {
                    #region ���Ȩ��
                    bool hasPermission = false;
                    foreach (Permission permission in user.OrganizationPermission)
                    {
                        if (permission.Code == oldTransportationActBill.BillAddress.Party.Code)
                        {
                            hasPermission = true;
                            break;
                        }
                    }

                    if (!hasPermission)
                    {
                        throw new BusinessErrorException("TransportationBill.Create.Error.NoAuthrization", oldTransportationActBill.BillAddress.Party.Code);
                    }
                    #endregion

                    #region ����TransportationBill
                    transportationBill = new TransportationBill();
                    transportationBill.BillNo = numberControlMgr.GenerateNumber(BusinessConstants.CODE_PREFIX_TRANSPORTATIONBILL);
                    transportationBill.Status = status;
                    transportationBill.BillAddress = oldTransportationActBill.BillAddress;
                    transportationBill.Currency = oldTransportationActBill.Currency;
                    transportationBill.Discount = discount;                   //����������
                    transportationBill.BillType = BusinessConstants.CODE_TRANSPORTATION_TRANSPORTATIONBILL_TYPE_VALUE_NORMAL;
                    transportationBill.CreateDate = dateTimeNow;
                    transportationBill.CreateUser = user;
                    transportationBill.LastModifyDate = dateTimeNow;
                    transportationBill.LastModifyUser = user;

                    this.CreateTransportationBill(transportationBill);
                    transportationBillList.Add(transportationBill);
                    #endregion
                }
                #endregion

                TransportationBillDetail transportationBillDetail = this.transportationBillDetailMgr.TransferTransportationActBill2TransportationBillDetail(oldTransportationActBill);
                transportationBillDetail.Bill = transportationBill;
                transportationBill.AddTransportationBillDetail(transportationBillDetail);

                this.transportationBillDetailMgr.CreateTransportationBillDetail(transportationBillDetail);
                //�ۼ�TransportationActBill�����ͽ��
                this.transportationActBillMgr.ReverseUpdateTransportationActBill(null, transportationBillDetail, user);
            }

            return transportationBillList;
        }
Esempio n. 7
0
    public object getExcel(TransportationBill tb, IList<TransportationBillDetail> detailList, bool isExportExcel)
    {
        string path = Server.MapPath(".") + @"\Reports\Templates\YFKExcelTemplates\TransportationBill.xls";
        if (File.Exists(path))
        {

            string filename = @"/Reports/Templates/TempFiles/temp_" + DateTime.Now.ToString("yyyyMMddhhmmss") + tb.BillNo + ".xls";
            string _wpath = Server.MapPath(".") + filename;
            File.Copy(path, _wpath);
            FileStream file = new FileStream(_wpath, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
            HSSFWorkbook hssfworkbook = new HSSFWorkbook(file);
            Sheet sheet = hssfworkbook.GetSheet("sheet1");
            NPOI.SS.UserModel.CellStyle normalStyle = setCellstyle(hssfworkbook, new string[] { "Border", "Center" });
            NPOI.SS.UserModel.CellStyle dateStyle = setCellstyle(hssfworkbook, new string[] { "Border", "Center", "DateTime" });
            Cell cell = sheet.GetRow(8).GetCell(2);
            cell.SetCellValue(tb.BillAddress.Party.Name);
            cell = sheet.GetRow(8).GetCell(8);
            cell.SetCellValue(tb.BillNo);
            int i = 10;
            decimal cnt = 0;
            foreach (TransportationBillDetail tbd in detailList)
            {
                Row row = sheet.CreateRow(i);

                TransportationOrder tord = TheTransportationOrderMgr.LoadTransportationOrder(tbd.ActBill.OrderNo);
                row.CreateCell(0).SetCellValue(tord.CreateDate);//运输日期
                row.CreateCell(1).SetCellValue(tord.TransportationRoute != null ? tord.TransportationRoute.Description : "");//运输路线
                row.CreateCell(2).SetCellValue(tbd.ActBill.PricingMethod != null ? tbd.ActBill.PricingMethod : "");//运输形式
                row.CreateCell(3).SetCellValue(tord.OrderNo);//运单号码
                row.CreateCell(4).SetCellValue(tbd.ActBill.EffectiveDate);//生效日期
                row.CreateCell(5).SetCellValue(tbd.ActBill.UnitPrice.ToString("F2"));//单价
                row.CreateCell(6).SetCellValue(tbd.ActBill.Currency.Name);//币种
                row.CreateCell(7).SetCellValue(tbd.ActBill.BillQty.ToString("F0"));//开票数
                row.CreateCell(8).SetCellValue(tbd.ActBill.BillAmount.ToString("F2"));//金额
                cnt = Convert.ToInt32(tbd.ActBill.BillAmount) + cnt;
                for (int y = 0; y < 9; y++)
                {
                    row.GetCell(y).CellStyle = normalStyle;
                }
                row.GetCell(0).CellStyle = dateStyle;
                row.GetCell(4).CellStyle = dateStyle;
                i++;

            }
            if (i <= 20)
            {
                for (int j = i; j < 21; j++)
                {
                    Row row = sheet.CreateRow(j);
                    for (int y = 0; y < 9; y++)
                    {
                        row.CreateCell(y).CellStyle = normalStyle;
                    }
                }
                i = 20;
            }
            Row _row = sheet.CreateRow(i + 1);
            sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(i + 1, i + 1, 6, 7));
            _row.CreateCell(6).SetCellValue("合计发票金额:");
            _row.GetCell(6).CellStyle.Alignment = HorizontalAlignment.RIGHT;
            _row.CreateCell(8).SetCellValue(cnt.ToString("F2"));

            MemoryStream ms = new MemoryStream();
            hssfworkbook.Write(ms);
            if (!isExportExcel)
            {
                FileStream f = new FileStream(_wpath, FileMode.Open, FileAccess.Write);
                byte[] data = ms.ToArray();
                f.Write(data, 0, data.Length);
                f.Close();
                f.Dispose();
                hssfworkbook = null;
                ms.Close();
                ms.Dispose();
                return "http://" + Request.Url.Authority + filename;
            }
            else
            {
                Response.AddHeader("Content-Disposition", string.Format("attachment;filename=TBillResult.xls"));
                Response.BinaryWrite(ms.ToArray());
                hssfworkbook = null;
                ms.Close();
                ms.Dispose();
                return null;
            }
        }
        else
            return null;
    }
 public TransportationBill VoidTransportationBill(TransportationBill transportationBill, string userCode)
 {
     return this.VoidTransportationBill(transportationBill.BillNo, this.userMgr.CheckAndLoadUser(userCode));
 }
 public void AddTransportationBillDetail(TransportationBill transportationBill, IList<TransportationActBill> transportationActBillList, User user)
 {
     this.AddTransportationBillDetail(transportationBill.BillNo, transportationActBillList, user);
 }
 public void AddTransportationBillDetail(TransportationBill transportationBill, IList<TransportationActBill> transportationActBillList, string userCode)
 {
     this.AddTransportationBillDetail(transportationBill.BillNo, transportationActBillList, this.userMgr.CheckAndLoadUser(userCode));
 }
 public virtual void UpdateTransportationBill(TransportationBill entity)
 {
     entityDao.UpdateTransportationBill(entity);
 }
 public virtual void DeleteTransportationBill(TransportationBill entity)
 {
     entityDao.DeleteTransportationBill(entity);
 }
 public virtual void CreateTransportationBill(TransportationBill entity)
 {
     entityDao.CreateTransportationBill(entity);
 }
        public void UpdateTransportationBill(TransportationBill transportationBill, User user)
        {
            TransportationBill oldTransportationBill = this.CheckAndLoadTransportationBill(transportationBill.BillNo, true);
            oldTransportationBill.Discount = transportationBill.Discount;
            oldTransportationBill.ExternalBillNo = transportationBill.ExternalBillNo;

            #region ���״̬
            if (oldTransportationBill.Status != BusinessConstants.CODE_MASTER_STATUS_VALUE_CREATE)
            {
                throw new BusinessErrorException("TransportationBill.Error.StatusErrorWhenUpdate", oldTransportationBill.Status, oldTransportationBill.BillNo);
            }
            #endregion

            #region ������ϸ
            if (transportationBill.TransportationBillDetails != null && transportationBill.TransportationBillDetails.Count > 0)
            {
                foreach (TransportationBillDetail newTransportationBillDetail in transportationBill.TransportationBillDetails)
                {
                    TransportationBillDetail oldTransportationBillDetail = this.transportationBillDetailMgr.LoadTransportationBillDetail(newTransportationBillDetail.Id);
                    newTransportationBillDetail.ActBill = oldTransportationBillDetail.ActBill;
                    newTransportationBillDetail.UnitPrice = oldTransportationBillDetail.UnitPrice;
                    newTransportationBillDetail.Currency = oldTransportationBillDetail.Currency;
                    newTransportationBillDetail.IsIncludeTax = oldTransportationBillDetail.IsIncludeTax;
                    newTransportationBillDetail.TaxCode = oldTransportationBillDetail.TaxCode;

                    /*
                     *
                     * 1.TransType=Transportation �۸���ϸ�������̣� ��  �̲��ѣ�����ʱ
                     * a.PricingMethod=M3��KG  ������
                     * b.SHIPT   �����
                     * 2.TransType=WarehouseLease(�̶�����) �����
                     * 3.TransType=Operation(������) ������
                     */
                    if (oldTransportationBillDetail.TransType == BusinessConstants.TRANSPORTATION_PRICELIST_DETAIL_TYPE_OPERATION
                        ||
                        (oldTransportationBillDetail.TransType == BusinessConstants.TRANSPORTATION_PRICELIST_DETAIL_TYPE_TRANSPORTATION
                        && (oldTransportationBillDetail.ActBill.PricingMethod == BusinessConstants.TRANSPORTATION_PRICING_METHOD_M3 || oldTransportationBillDetail.ActBill.PricingMethod == BusinessConstants.TRANSPORTATION_PRICING_METHOD_KG)
                        )
                        )
                    {
                        //�������TransportationActBill�������¼��㿪Ʊ���
                        if (oldTransportationBillDetail.BilledQty != newTransportationBillDetail.BilledQty)
                        {
                            this.transportationActBillMgr.ReverseUpdateTransportationActBill(
                                oldTransportationBillDetail, newTransportationBillDetail, user);
                        }

                        oldTransportationBillDetail.Amount = newTransportationBillDetail.Amount;
                        oldTransportationBillDetail.BilledQty = newTransportationBillDetail.BilledQty;
                        oldTransportationBillDetail.Discount = newTransportationBillDetail.Discount;
                    }
                    else
                    {
                        //�������TransportationActBill�������¼��㿪Ʊ���
                        if (oldTransportationBillDetail.Amount != newTransportationBillDetail.Amount)
                        {
                            this.transportationActBillMgr.ReverseUpdateTransportationActBill(
                                oldTransportationBillDetail, newTransportationBillDetail, user);
                        }

                        oldTransportationBillDetail.UnitPrice = newTransportationBillDetail.Amount;
                        oldTransportationBillDetail.Amount = newTransportationBillDetail.Amount;
                        oldTransportationBillDetail.BilledQty = 1;
                        oldTransportationBillDetail.Discount = newTransportationBillDetail.Discount;
                    }

                    this.transportationBillDetailMgr.UpdateTransportationBillDetail(oldTransportationBillDetail);
                }
            }
            #endregion

            oldTransportationBill.LastModifyUser = user;
            oldTransportationBill.LastModifyDate = DateTime.Now;

            this.UpdateTransportationBill(oldTransportationBill);
        }
 public void CancelTransportationBill(TransportationBill transportationBill, User user)
 {
     this.CancelTransportationBill(transportationBill.BillNo, user);
 }
        public TransportationBill VoidTransportationBill(string billNo, User user)
        {
            TransportationBill oldTransportationBill = this.CheckAndLoadTransportationBill(billNo, true);
            DateTime dateTimeNow = DateTime.Now;

            #region ���״̬
            if (oldTransportationBill.Status != BusinessConstants.CODE_MASTER_STATUS_VALUE_CLOSE)
            {
                throw new BusinessErrorException("TransportationBill.Error.StatusErrorWhenVoid", oldTransportationBill.Status, oldTransportationBill.BillNo);
            }
            #endregion

            #region ���������˵�
            TransportationBill voidTransportationBill = new TransportationBill();
            CloneHelper.CopyProperty(oldTransportationBill, voidTransportationBill, this.TransportationBillCloneField);

            voidTransportationBill.BillNo = this.numberControlMgr.GenerateNumber(BusinessConstants.CODE_PREFIX_TRANSPORTATIONBILL_RED);
            voidTransportationBill.Status = BusinessConstants.CODE_MASTER_STATUS_VALUE_CLOSE;
            if (oldTransportationBill.Discount.HasValue)
            {
                voidTransportationBill.Discount = 0 - oldTransportationBill.Discount.Value;
            }
            voidTransportationBill.ReferenceBillNo = oldTransportationBill.BillNo;
            voidTransportationBill.BillType = BusinessConstants.CODE_TRANSPORTATION_TRANSPORTATIONBILL_TYPE_VALUE_CANCEL;
            voidTransportationBill.CreateDate = dateTimeNow;
            voidTransportationBill.CreateUser = user;
            voidTransportationBill.LastModifyDate = dateTimeNow;
            voidTransportationBill.LastModifyUser = user;

            this.CreateTransportationBill(voidTransportationBill);
            #endregion

            #region ���������˵���ϸ
            foreach (TransportationBillDetail oldTransportationBillDetail in oldTransportationBill.TransportationBillDetails)
            {
                TransportationBillDetail voidTransportationBillDetail = new TransportationBillDetail();
                CloneHelper.CopyProperty(oldTransportationBillDetail, voidTransportationBillDetail, this.TransportationBillDetailCloneField);
                voidTransportationBillDetail.BilledQty = 0 - oldTransportationBillDetail.BilledQty;
                voidTransportationBillDetail.Discount = 0 - oldTransportationBillDetail.Discount;
                voidTransportationBillDetail.Amount = 0 - oldTransportationBillDetail.Amount;
                voidTransportationBillDetail.Bill = voidTransportationBill;

                this.transportationBillDetailMgr.CreateTransportationBillDetail(voidTransportationBillDetail);
                voidTransportationBill.AddTransportationBillDetail(voidTransportationBillDetail);

                //�������TransportationActBill
                this.transportationActBillMgr.ReverseUpdateTransportationActBill(null, voidTransportationBillDetail, user);
            }
            #endregion

            #region ��¼��Ʊ����
            /*20110422 Tag ������ǣ����ڲ���
            foreach (TransportationBillDetail transportationBillDetail in oldTransportationBill.TransportationBillDetails)
            {
                this.billTransactionMgr.RecordBillTransaction(transportationBillDetail, user, true);
            }
             */
            #endregion

            #region ����ԭ�˵�
            oldTransportationBill.ReferenceBillNo = voidTransportationBill.BillNo;
            oldTransportationBill.Status = BusinessConstants.CODE_MASTER_STATUS_VALUE_VOID;
            oldTransportationBill.LastModifyDate = dateTimeNow;
            oldTransportationBill.LastModifyUser = user;

            this.UpdateTransportationBill(oldTransportationBill);
            #endregion

            return voidTransportationBill;
        }
 public void CloseTransportationBill(TransportationBill transportationBill, User user)
 {
     this.CloseTransportationBill(transportationBill.BillNo, user);
 }
 public TransportationBill VoidTransportationBill(TransportationBill transportationBill, User user)
 {
     return this.VoidTransportationBill(transportationBill.BillNo, user);
 }
Esempio n. 19
0
    private void UpdateView(TransportationBill transportationBill)
    {
        #region 根据状态显示按钮
        if (transportationBill.Status == BusinessConstants.CODE_MASTER_STATUS_VALUE_CREATE)
        {
            this.btnSave.Visible = true;
            this.btnSubmit.Visible = true;
            this.btnDelete.Visible = true;
            this.btnClose.Visible = false;
            this.btnCancel.Visible = false;
            this.btnVoid.Visible = false;
            this.btnAddDetail.Visible = true;
            this.btnDeleteDetail.Visible = true;
            //this.btnPrint.Visible = false;
        }
        else if (transportationBill.Status == BusinessConstants.CODE_MASTER_STATUS_VALUE_SUBMIT)
        {
            this.btnSave.Visible = false;
            this.btnSubmit.Visible = false;
            this.btnDelete.Visible = false;
            this.btnClose.Visible = true;
            this.btnCancel.Visible = true;
            this.btnVoid.Visible = false;
            this.btnAddDetail.Visible = false;
            this.btnDeleteDetail.Visible = false;
            //this.btnPrint.Visible = true;
        }
        else if (transportationBill.Status == BusinessConstants.CODE_MASTER_STATUS_VALUE_CANCEL)
        {
            this.btnSave.Visible = false;
            this.btnSubmit.Visible = false;
            this.btnDelete.Visible = false;
            this.btnClose.Visible = false;
            this.btnCancel.Visible = false;
            this.btnVoid.Visible = false;
            this.btnAddDetail.Visible = false;
            this.btnDeleteDetail.Visible = false;
            //this.btnPrint.Visible = false;
        }
        else if (transportationBill.Status == BusinessConstants.CODE_MASTER_STATUS_VALUE_CLOSE)
        {
            this.btnSave.Visible = false;
            this.btnSubmit.Visible = false;
            this.btnDelete.Visible = false;
            this.btnClose.Visible = false;
            this.btnCancel.Visible = false;
            //this.btnPrint.Visible = false;
            if (transportationBill.BillType == BusinessConstants.CODE_TRANSPORTATION_TRANSPORTATIONBILL_TYPE_VALUE_CANCEL)
            {
                this.btnVoid.Visible = false; ;
            }
            else
            {
                this.btnVoid.Visible = true;
            }
            this.btnAddDetail.Visible = false;
            this.btnDeleteDetail.Visible = false;
        }
        else if (transportationBill.Status == BusinessConstants.CODE_MASTER_STATUS_VALUE_VOID)
        {
            this.btnSave.Visible = false;
            this.btnSubmit.Visible = false;
            this.btnDelete.Visible = false;
            this.btnClose.Visible = false;
            this.btnCancel.Visible = false;
            this.btnVoid.Visible = false;
            this.btnAddDetail.Visible = false;
            this.btnDeleteDetail.Visible = false;
            //this.btnPrint.Visible = false;
        }
        #endregion

        #region 根据状态隐藏/显示字段
        if (transportationBill.Status != BusinessConstants.CODE_MASTER_STATUS_VALUE_CREATE)
        {
            this.Gv_List.Columns[0].Visible = false;
            this.tbTotalDiscountRate.ReadOnly = true;
            this.tbTotalDiscount.ReadOnly = true;

            TextBox tbExternalBillNo = this.FV_TransportationBill.FindControl("tbExternalBillNo") as TextBox;
            tbExternalBillNo.ReadOnly = true;
        }
        else
        {
            this.Gv_List.Columns[0].Visible = true;
            this.tbTotalDiscountRate.ReadOnly = false;
            this.tbTotalDiscount.ReadOnly = false;

            TextBox tbExternalBillNo = this.FV_TransportationBill.FindControl("tbExternalBillNo") as TextBox;
            tbExternalBillNo.ReadOnly = false;
        }
        #endregion

        #region 给总金额和折扣赋值
        this.tbTotalDetailAmount.Text = transportationBill.TotalBillDetailAmount.ToString("F2");
        this.tbTotalAmount.Text = transportationBill.TotalBillAmount.ToString("F2");
        this.tbTotalDiscount.Text = (transportationBill.Discount.HasValue ? transportationBill.Discount.Value : 0).ToString("F2");
        this.tbTotalDiscountRate.Text = transportationBill.TotalBillDiscountRate.ToString("F2");
        #endregion

        #region 初始化弹出窗口
        this.PartyCode = transportationBill.BillAddress.Party.Code;
        this.ucNewSearch.InitPageParameter(true, transportationBill);
        #endregion

        UpdateDetailView(transportationBill.TransportationBillDetails);
    }