Ejemplo n.º 1
0
 private void DoSelect()
 {
     if (op == "c")
     {
         sql = @"select A.Id as OrderDetailId,A.OId as SaleOrderId,A.PId as ProductId,A.Unit,
         A.PName as ProductName,A.PCode as ProductCode,A.Count,A.SalePrice,B.Number,
         isnull(BillingCount,0) as HaveInvoiceCount,(Count-isnull(BillingCount,0)-isnull(ReturnCount,0)) as InvoiceCount,
         isnull(ReturnCount,0) ReturnCount,(Count-isnull(BillingCount,0)-isnull(ReturnCount,0))*SalePrice as NowAmount
         from SHHG_AimExamine..OrdersPart A
         left join SHHG_AimExamine..SaleOrders B on A.OId=B.Id
         where PatIndex('%'+OId+'%','{0}')> 0 and Count-isnull(ReturnCount,0) > isnull(BillingCount,0) ";
         //NowAmount 表示本次开票金额
         sql       = string.Format(sql, orderids);
         ent       = new OrderInvoice();
         ent.CId   = CustomerId;
         ent.CName = CustomerName;
         //有可能对多个销售单一起开发票 多个销售单可能各自有折扣金额 有可能一个销售单会分多次开票。但折扣金额只在第一次开发票的时候带到开票界面
         //string tempsql = "select sum(isnull(DiscountAmount,0)) from SHHG_AimExamine..SaleOrders where PatIndex('%'+Id+'%','" + orderids + "')>0 and  InvoiceState = ''";
         //ent.DiscountAmount = DataHelper.QueryValue<decimal>(tempsql);
         //tempsql = "select sum(isnull(ReturnAmount,0)) from SHHG_AimExamine..SaleOrders where PatIndex('%'+Id+'%','" + orderids + "')>0 and  InvoiceState = ''";
         //ent.ReturnAmount = DataHelper.QueryValue<decimal>(tempsql);不需要减退货金额 因为明细显示的时候数量上已经减掉了退货数量
     }
     else
     {
         sql = @"select A.*,B.Number from SHHG_AimExamine..OrderInvoiceDetail A
         left join SHHG_AimExamine..SaleOrders B on A.SaleOrderId=B.Id
         where OrderInvoiceId='{0}' order by ProductCode asc";
         sql = string.Format(sql, id);
     }
     PageState.Add("DataList", DataHelper.QueryDictList(sql));
     SetFormData(ent);
 }
Ejemplo n.º 2
0
 public bool Insert(OrderInvoice entity, string userLogin)
 {
     try
     {
         using (var connection = GetConnection())
         {
             connection.Execute(@"
              sp_InsertOrderInvoice 
                             @OrderId=@OrderId,
                             @InvoiceNo=@InvoiceNo,
                             @InvoiceAmount=@InvoiceAmount,
                             @CutLengthCharge=@CutLengthCharge,
                             @DeliveryCharge=@DeliveryCharge,
                             @AMTExcGST=@AMTExcGST,
                             @GST=@GST,
                             @AMTIncGST=@AMTIncGST,
                             @ActiveStatus=@ActiveStatus
             ", entity);
             return(true);
         }
     }
     catch (Exception e)
     {
         BWC.Core.Common.LogManager.LogError("Insert invoice in purchase", e);
         return(false);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Converts to order invoice.
        /// </summary>
        /// <param name="addOrderInvoiceModel">The model.</param>
        /// <returns></returns>
        public static OrderInvoice BindOrderInvoice(AddOrderInvoiceModel addOrderInvoiceModel, List <string> invoiceIds, decimal discountAmount = 0, decimal percentage = 0)
        {
            OrderInvoice orderInvoiceModel = new OrderInvoice();

            if (addOrderInvoiceModel != null)
            {
                orderInvoiceModel.OrderFK         = DBHelper.ParseInt64(addOrderInvoiceModel.OrderId);
                orderInvoiceModel.CreatedOn       = DateTime.Now;
                orderInvoiceModel.CreatedBy       = DBHelper.ParseInt64(addOrderInvoiceModel.CreatedBy);
                orderInvoiceModel.UniqueInvoiceId = CheckInvoiceId(invoiceIds);
                orderInvoiceModel.InvoiceDate     = DateTime.Now;
                orderInvoiceModel.UserFK          = DBHelper.ParseInt64(addOrderInvoiceModel.UserId);
                orderInvoiceModel.SubTotalAmount  = GetSubTotalAmount(addOrderInvoiceModel.productDetail);
                orderInvoiceModel.TotalGSTAmount  = (orderInvoiceModel.SubTotalAmount * DBHelper.ParseDecimal(addOrderInvoiceModel.VatCharges)) / 100;
                orderInvoiceModel.DiscountAmount  = 0;
                decimal total = orderInvoiceModel.SubTotalAmount + orderInvoiceModel.TotalGSTAmount + DBHelper.ParseDecimal(addOrderInvoiceModel.ShippingCharges);
                if (discountAmount > 0)
                {
                    orderInvoiceModel.DiscountAmount = discountAmount;
                }
                else if (percentage > 0)
                {
                    orderInvoiceModel.DiscountAmount = total * percentage / 100;
                }
                orderInvoiceModel.PayableAmount      = total - orderInvoiceModel.DiscountAmount;
                orderInvoiceModel.ShippingCharges    = DBHelper.ParseDecimal(addOrderInvoiceModel.ShippingCharges);
                orderInvoiceModel.IsInvoiceGenerated = true;
                orderInvoiceModel.OrderStatusFK      = (long)OrderStatusEnum.ReadyforPayment;
                orderInvoiceModel.TrackingNumber     = addOrderInvoiceModel.TrackingNumber;
            }
            return(orderInvoiceModel);
        }
Ejemplo n.º 4
0
 public bool Update(OrderInvoice entity, string userLogin)
 {
     try
     {
         using (var connection = GetConnection())
         {
             connection.Execute(@"
             call sp_UpdateOrderInvoice (
                             @Id,
                             @OrderId,
                             @InvoiceNo,
                             @InvoiceAmount,
                             @CutLengthCharge,
                             @DeliveryCharge,
                             @AMTExcGST,
                             @GST,
                             @AMTIncGST,
                             @ActiveStatus
                         )
             ", entity);
             return(true);
         }
     }
     catch (Exception e)
     {
         BWC.Core.Common.LogManager.LogError("Update invoice in purchase", e);
         return(false);
     }
 }
        private static decimal GetAmountdue(OrderInvoice invoiceData)
        {
            var amountdue      = 0m;
            var currencySymbol = HLConfigManager.Configurations.CheckoutConfiguration.CurrencySymbol;

            decimal.TryParse(invoiceData.DiscountedGrandTotal.Replace(currencySymbol, string.Empty), out amountdue);
            return(amountdue);
        }
Ejemplo n.º 6
0
        private void DoBatchDelete()
        {
            IList <object> idList = RequestData.GetList <object>("IdList");

            if (idList != null && idList.Count > 0)
            {
                OrderInvoice.DoBatchDelete(idList.ToArray());
            }
        }
        public void OrderInvoiceTest()
        {
            // Arrange


            // Act
            OrderInvoice orderInvoice = this.CreateOrderInvoice();


            // Assert
        }
Ejemplo n.º 8
0
 public IActionResult AddOrderInvoice(AddOrderInvoiceModel orderInvoiceModel)
 {
     try
     {
         if (ModelState.IsValid)
         {
             decimal discountAmount = 0;
             decimal percentage     = 0;
             long    invoiceCount   = iOrderInvoice.GetInvoiceCountByOrderId(DBHelper.ParseInt64(orderInvoiceModel.OrderId));
             if (invoiceCount <= 0)
             {
                 var orderModel = iOrder.GetOrderModelByOrderId(DBHelper.ParseInt64(orderInvoiceModel.OrderId));
                 if (orderModel != null && orderModel.PromocodeFK.HasValue)
                 {
                     var promoCodeModel = iPromoCode.GetPromocodeDetail(DBHelper.ParseInt64(orderModel.PromocodeFK));
                     if (promoCodeModel != null)
                     {
                         discountAmount = promoCodeModel.Amount;
                         percentage     = promoCodeModel.Percentage;
                     }
                 }
             }
             var          uniqueInvoiceIds = iOrderInvoice.GetAllUniqueInvoiceIds();
             OrderInvoice orderInvModel    = OrderInvoiceHelper.BindOrderInvoice(orderInvoiceModel, uniqueInvoiceIds, discountAmount, percentage);
             List <OrderInvoiceDetail> invoiceDetailsList = OrderInvoiceHelper.BindOrderInvoiceDetailModel(orderInvoiceModel.productDetail);
             long orderInvoiceId = iOrderInvoice.AddOrderInvoice(orderInvModel, invoiceDetailsList, orderInvoiceModel.productDetail);
             if (orderInvoiceId > 0)
             {
                 if (orderInvModel.OrderStatusFK == OrderStatusEnum.ReadyforPayment.GetHashCode())
                 {
                     SendPaymentRelatedEmail(DBHelper.ParseInt32(orderInvoiceId));
                 }
                 return(Ok(ResponseHelper.Success(MessageConstants.OrderInvoiceGenerated)));
             }
             else
             {
                 return(Ok(ResponseHelper.Error(MessageConstants.OrderInvoiceNotGenerated)));
             }
         }
         else
         {
             return(Ok(ResponseHelper.Error(MessageConstants.CompulsoryData)));
         }
     }
     catch (Exception ex)
     {
         LogHelper.ExceptionLog(ex.Message + "  :::::  " + ex.StackTrace);
         return(Ok(ResponseHelper.Error(ex.Message)));
     }
 }
Ejemplo n.º 9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            op           = RequestData.Get <string>("op");
            orderids     = RequestData.Get <string>("orderids");
            id           = RequestData.Get <string>("id");
            CustomerId   = RequestData.Get <string>("CustomerId");
            CustomerName = Server.HtmlDecode(RequestData.Get <string>("CustomerName"));
            entStrList   = RequestData.GetList <string>("data");
            if (!string.IsNullOrEmpty(id))
            {
                ent = OrderInvoice.Find(id);
            }
            switch (RequestActionString)
            {
            case "update":
                ent = GetMergedData <OrderInvoice>();
                ent.DoUpdate();
                ProcessDetail();
                break;

            case "JudgeRepeat":
                sql = "select count(1) from SHHG_AimExamine..OrderInvoice where Number like '%" + RequestData.Get <string>("InvoiceNo") + "%' ";
                if (DataHelper.QueryValue <int>(sql) > 0)
                {
                    PageState.Add("IsRepeat", "T");
                }
                else
                {
                    PageState.Add("IsRepeat", "F");
                }
                break;

            case "create":
                ent     = GetPostedData <OrderInvoice>();
                ent.OId = orderids;
                ent.DoCreate();
                ProcessDetail();
                break;

            default:
                DoSelect();
                break;
            }
        }
        private static OrderTotals ConvertToOrderTotals(OrderInvoice invoiceData, string counrty)
        {
            if (string.IsNullOrEmpty(invoiceData.DiscountedGrandTotal))
            {
                return(null);
            }
            var amountdue = GetAmountdue(invoiceData);

            if (amountdue == 0)
            {
                return(null);
            }
            return(counrty == "CN"
                ? new OrderTotals_V02 {
                AmountDue = amountdue
            }
                : new OrderTotals_V01 {
                AmountDue = amountdue
            });
        }
Ejemplo n.º 11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string       action = Request["action"];
            string       id     = Request["invoiceid"];
            OrderInvoice oiEnt  = null;

            switch (action)
            {
            case "loadform":
                if (!string.IsNullOrEmpty(id))
                {
                    oiEnt = OrderInvoice.Find(id);
                    Response.Write("{data:" + JsonHelper.GetJsonString(oiEnt) + "}");
                    Response.End();
                }
                break;

            case "loaddetail":
                string sql = @"select A.*,B.Number from SHHG_AimExamine..OrderInvoiceDetail A
                                 left join SHHG_AimExamine..SaleOrders B on A.SaleOrderId=B.Id
                                 where OrderInvoiceId='{0}' order by ProductCode asc";
                sql = string.Format(sql, id);
                DataTable dt = DataHelper.QueryDataTable(sql);
                Response.Write("{rows:" + JsonHelper.GetJsonStringFromDataTable(dt) + "}");
                Response.End();
                break;

            case "payoffinvoice":
                oiEnt          = OrderInvoice.Find(id);
                oiEnt.PayState = "已全部付款";
                oiEnt.Remark   = Request["remark"];
                oiEnt.DoUpdate();
                Response.Write("{success:'true'}");
                Response.End();
                break;
            }
        }
Ejemplo n.º 12
0
 public decimal GetTotalAmount(OrderInvoice orderInvoice)
 {
     return(orderInvoice.Products.Sum(p => p.Amount));
 }
Ejemplo n.º 13
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Index = RequestData.Get <string>("Index");
            CC    = RequestData.Get <string>("CC");
            string ids = RequestData.Get <string>("ids");

            switch (RequestActionString)
            {
            case "delete":
                if (!string.IsNullOrEmpty(ids))
                {
                    string[] idArray = ids.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                    for (int i = 0; i < idArray.Length; i++)
                    {
                        oiEnt = OrderInvoice.Find(idArray[i]);
                        IList <OrderInvoiceDetail> oidEnts = OrderInvoiceDetail.FindAllByProperty("OrderInvoiceId", oiEnt.Id);
                        foreach (OrderInvoiceDetail oidEnt in oidEnts)
                        {
                            OrdersPart opEnt = OrdersPart.Find(oidEnt.OrderDetailId);
                            opEnt.BillingCount = opEnt.BillingCount - oidEnt.InvoiceCount;
                            opEnt.DoUpdate();
                            oidEnt.DoDelete();
                        }
                        //删除发票的时候 回滚销售订单的发票状态   soEnt.InvoiceState = "";
                        string[] oidArray = oiEnt.OId.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                        foreach (string oid in oidArray)
                        {
                            SaleOrder soEnt = SaleOrder.Find(oid);
                            sql = "select count(Id) from SHHG_AimExamine..OrdersPart where BillingCount>0 and OId='" + oid + "'";
                            if (DataHelper.QueryValue <int>(sql) == 0)
                            {
                                soEnt.InvoiceState = "";
                            }
                            else
                            {
                                soEnt.InvoiceState = "已部分开发票";
                            }
                            soEnt.DoUpdate();
                        }
                        oiEnt.DoDelete();
                    }
                }
                break;

            case "RollBack":
                if (!string.IsNullOrEmpty(ids))
                {
                    string[] idArray = ids.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                    for (int i = 0; i < idArray.Length; i++)
                    {
                        oiEnt           = OrderInvoice.Find(idArray[i]);
                        oiEnt.PayState  = null;
                        oiEnt.PayAmount = null;
                        oiEnt.DoUpdate();
                    }
                }
                break;

            case "updateorderinvoicedetail":
                IList <OrderInvoice> oiEnts = OrderInvoice.FindAll();
                foreach (OrderInvoice oiEnt in oiEnts)
                {
                    IList <OrderInvoiceDetail> oidEnts = OrderInvoiceDetail.FindAllByProperty(OrderInvoiceDetail.Prop_OrderInvoiceId, oiEnt.Id);
                    if (oidEnts.Count == 0)
                    {
                        JArray ja = JsonHelper.GetObject <JArray>(oiEnt.Child);
                        foreach (JObject jo in ja)
                        {
                            OrderInvoiceDetail oidEnt = new OrderInvoiceDetail();
                            oidEnt.OrderDetailId  = jo.Value <string>("Id");
                            oidEnt.OrderInvoiceId = oiEnt.Id;
                            oidEnt.SaleOrderId    = jo.Value <string>("OId");
                            oidEnt.ProductId      = jo.Value <string>("ProductId");
                            oidEnt.ProductCode    = jo.Value <string>("ProductCode");
                            oidEnt.ProductName    = jo.Value <string>("ProductName");
                            oidEnt.SalePrice      = jo.Value <decimal>("SalePrice");
                            oidEnt.Unit           = jo.Value <string>("Unit");
                            oidEnt.Amount         = jo.Value <decimal>("Amount");
                            oidEnt.Count          = jo.Value <Int32>("Count");
                            oidEnt.InvoiceCount   = jo.Value <Int32>("Count");
                            oidEnt.DoCreate();
                        }
                    }
                }
                break;

            default:
                DoSelect();
                break;
            }
        }
Ejemplo n.º 14
0
 /// <summary>
 /// Adds the order invoice.
 /// </summary>
 /// <param name="orderInvoiceModel">The model.</param>
 /// <param name="detailModel">The detail model.</param>
 /// <returns></returns>
 public long AddOrderInvoice(OrderInvoice orderInvoiceModel, List <OrderInvoiceDetail> detailModel, List <AddOrderInvoiceProductDetail> productSizeDetail)
 {
     using (var transaction = context.Database.BeginTransaction())
     {
         try
         {
             context.OrderInvoice.Add(orderInvoiceModel);
             context.SaveChanges();
             long OrderInvoiceId = orderInvoiceModel.OrderInvoiceId;
             if (OrderInvoiceId > 0)
             {
                 foreach (var item in detailModel)
                 {
                     item.OrderInvoiceFK = OrderInvoiceId;
                     context.OrderInvoiceDetail.Add(item);
                     context.SaveChanges();
                     if (item.OrderInvoiceDetailId <= 0)
                     {
                         transaction.Rollback();
                         return(0);
                     }
                     else
                     {
                         var size = productSizeDetail.Where(x => DBHelper.ParseInt64(x.ProductId) == item.ProductFK && DBHelper.ParseInt64(x.ProductColorId) == item.ProductColorFK).FirstOrDefault();
                         if (size != null)
                         {
                             string[] sizeSplitted = size.SizeRatio.Split(',');
                             if (sizeSplitted != null && sizeSplitted.Length > 0)
                             {
                                 for (int i = 0; i < sizeSplitted.Length; i++)
                                 {
                                     OrderInvoiceSizeDetail orderInvoiceSizeDetail = new OrderInvoiceSizeDetail();
                                     orderInvoiceSizeDetail.OrderInvoiceDetailFK = item.OrderInvoiceDetailId;
                                     orderInvoiceSizeDetail.Size = sizeSplitted[i];
                                     context.OrderInvoiceSizeDetail.Add(orderInvoiceSizeDetail);
                                     context.SaveChanges();
                                     if (orderInvoiceSizeDetail.OrderInvoiceSizeDetailId <= 0)
                                     {
                                         transaction.Rollback();
                                         return(0);
                                     }
                                 }
                             }
                         }
                     }
                 }
                 transaction.Commit();
                 return(OrderInvoiceId);
             }
             else
             {
                 transaction.Rollback();
                 return(0);
             }
         }
         catch (Exception ex)
         {
             transaction.Rollback();
             LogHelper.ExceptionLog(ex.Message + "  :::::  " + ex.StackTrace);
             throw ex;
         }
     }
 }
Ejemplo n.º 15
0
        protected void Page_Load(object sender, EventArgs e)
        {
            op   = RequestData.Get <string>("op");
            ids  = RequestData.Get <string>("ids");
            id   = RequestData.Get <string>("id");
            type = RequestData.Get <string>("type");

            OrderInvoice ent = null;

            switch (this.RequestAction)
            {
            case RequestActionEnum.Update:
                ent = this.GetMergedData <OrderInvoice>();
                ent.DoUpdate();
                this.SetMessage("修改成功!");
                break;

            case RequestActionEnum.Insert:
            case RequestActionEnum.Create:
                ent     = this.GetPostedData <OrderInvoice>();
                ent.OId = ids;
                ent.DoCreate();

                IList <string> strList = RequestData.GetList <string>("data");

                string[]    oids = ids.Split(',');
                SaleOrder[] ents = SaleOrder.FindAllByPrimaryKeys(oids);

                if (ents.Length > 0)
                {
                    foreach (SaleOrder soent in ents)
                    {
                        //更新订单开票状态及发票号码
                        soent.InvoiceState   = getInvoiceState(strList, soent.Id, soent.Number);
                        soent.InvoiceNumber += ent.Number + ",";

                        soent.DoSave();
                    }
                }

                this.SetMessage("新建成功!");
                break;

            case RequestActionEnum.Delete:
                ent = this.GetTargetData <OrderInvoice>();
                ent.DoDelete();
                this.SetMessage("删除成功!");
                return;

            default:
                if (RequestActionString == "")
                {
                }
                break;
            }

            //加载要开发票的数据
            if (op == "c" && !string.IsNullOrEmpty(ids))
            {
                string[] oids = ids.Split(',');

                SaleOrder[] ents = SaleOrder.FindAllByPrimaryKeys(oids);

                if (ents.Length > 0)
                {
                    DataTable dtall    = null;
                    DataTable dtMain   = null;
                    DataTable dtReturn = null;
                    DataTable dtChange = null;
                    string    columns  = "Id,OId,PId as ProductId,PCode as ProductCode,PName as ProductName,Isbn,[Count],Unit,SalePrice,Amount,Remark,BillingCount,'销售' as Type";
                    string    columns2 = "Id,OId,ProductId,ProductCode,ProductName,Isbn,[Count],Unit,ReturnPrice as SalePrice,Amount,Remark,BillingCount";
                    foreach (SaleOrder soent in ents)
                    {
                        //partList.AddRange(OrdersPart.FindAllByProperty("OId", soent.Id));

                        //查询数据
                        dtMain   = DataHelper.QueryDataTable("select " + columns + " from " + db + "..OrdersPart where OId='" + soent.Id + "'");
                        dtReturn = DataHelper.QueryDataTable("select " + columns2 + ",'退货' as Type from " + db + "..ReturnOrderPart where OId='" + soent.Id + "'");
                        dtChange = DataHelper.QueryDataTable("select " + columns2 + ",'换货' as Type from " + db + "..ChangeOrderPart where OId='" + soent.Id + "'");

                        //处理换货商品
                        DataTable dttemp = dtMain;
                        if (dtChange.Rows.Count > 0)
                        {
                            bool isfind = false;
                            foreach (DataRow charow in dtChange.Rows)
                            {
                                isfind = false;
                                foreach (DataRow mainrow in dtMain.Rows)
                                {
                                    if (charow["ProductId"] + "" == mainrow["ProductId"] + "")
                                    {
                                        isfind = true;
                                        //加上换货的商品数量
                                        //dttemp.Rows.Remove(mainrow);
                                        mainrow["Count"]  = Convert.ToInt32(mainrow["Count"]) + Convert.ToInt32(charow["Count"]);
                                        mainrow["Amount"] = Convert.ToInt32(mainrow["Amount"]) + Convert.ToInt32(charow["Amount"]);
                                        //dttemp.Rows.Add(mainrow);
                                        break;
                                    }
                                }
                                //不在原商品列表里,添加新的
                                if (!isfind)
                                {
                                    dttemp.Rows.Add(charow.ItemArray);
                                }
                            }
                            dtMain = dttemp;
                        }

                        //处理退货商品
                        if (dtReturn.Rows.Count > 0)
                        {
                            foreach (DataRow rtnrow in dtReturn.Rows)
                            {
                                foreach (DataRow mainrow in dtMain.Rows)
                                {
                                    if (rtnrow["ProductId"] + "" == mainrow["ProductId"] + "")
                                    {
                                        //完全退货移除
                                        if (rtnrow["Count"] + "" == mainrow["Count"] + "")
                                        {
                                            dttemp.Rows.Remove(mainrow);
                                        }
                                        else
                                        {
                                            //dttemp.Rows.Remove(mainrow);
                                            mainrow["Count"]  = Convert.ToInt32(mainrow["Count"]) - Convert.ToInt32(rtnrow["Count"]);
                                            mainrow["Amount"] = Convert.ToInt32(mainrow["Amount"]) - Convert.ToInt32(rtnrow["Amount"]);
                                            //dttemp.Rows.Add(mainrow);
                                        }
                                        break;
                                    }
                                }
                            }
                            dtMain = dttemp;
                        }

                        if (dtall == null)
                        {
                            dtall = dtMain;
                        }
                        else
                        {
                            dtall.Merge(dtMain);
                        }
                    }

                    #region old

                    //                    string sql = @"select OId,ProductId,ProductCode,ProductName,Isbn,sum([count]) as [Count],max(SalePrice) as SalePrice,sum(Amount) as Amount,Unit,sum(BillingCount) as BillingCount from(
                    //                                select Id,OId,PId as ProductId,PCode as ProductCode,PName as ProductName,Isbn,[Count],Unit,SalePrice,Amount,BillingCount from {0}..OrdersPart
                    //                                union all
                    //                                select Id,OId,ProductId,ProductCode,ProductName,Isbn,[Count],Unit,0,Amount,BillingCount from {1}..ChangeOrderPart
                    //                                union all
                    //                                select Id,OId,ProductId,ProductCode,ProductName,Isbn,([Count]*-1) as [Count],Unit,0,(Amount*-1) as Amount,BillingCount from {2}..ReturnOrderPart
                    //                                )t where OId in ('" + ids.Replace(",", "','") + "') group by ProductId,ProductCode,ProductName,Unit,Isbn,OId having sum([Count])>0";
                    //                    DataTable dt = DataHelper.QueryDataTable(string.Format(sql, db, db, db));

                    //                    PageState.Add("DetailList", DataHelper.DataTableToDictList(dt));

                    #endregion

                    PageState.Add("DetailList", DataHelper.DataTableToDictList(dtall));
                    ents[0].Child  = "";
                    ents[0].Number = "";
                    this.SetFormData(ents[0]);
                }
            }
            else if (op != "c" && op != "cs")
            {
                if (!String.IsNullOrEmpty(id))
                {
                    ent = OrderInvoice.Find(id);
                }

                this.SetFormData(ent);
            }
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 保存数据方法
        /// </summary>
        private void DataSave()
        {
            OrderBase _OrderBase = new OrderBase();

            #region 销售单实体赋值
            _OrderBase.OA01001 = Convert.ToInt32(ViewState["OA01001"]);
            _OrderBase.OA01002 = this.txtOA01002.Text.Trim();
            _OrderBase.OA01003 = this.rbtnOA01003Yes.Checked == true ? 3 : 1;
            _OrderBase.OA01004 = 1;                     //下单
            _OrderBase.OA01005 = this.rbtnOA01005Yes.Checked ? 1 : 0;
            _OrderBase.OA01006 = "";                    //系统订单号
            _OrderBase.OA01007 = "";                    //喷嘴订单号
            _OrderBase.OA01008 = this.txtOA01008.Text.Trim();
            if (!string.IsNullOrEmpty(this.txtOA01009.Text.Trim()))
            {
                _OrderBase.OA01009 = Convert.ToDateTime(this.txtOA01009.Text.Trim());
            }
            if (!string.IsNullOrEmpty(this.txtOA01010.Text.Trim()))
            {
                _OrderBase.OA01010 = Convert.ToDateTime(this.txtOA01010.Text.Trim());
            }
            if (!string.IsNullOrEmpty(this.txtOA01011.Text.Trim()))
            {
                _OrderBase.OA01011 = Convert.ToDateTime(this.txtOA01011.Text.Trim());
            }
            _OrderBase.OA01012 = this.txtOA01012.Text.Trim();
            _OrderBase.OA01013 = this.ddlUA01.SelectedValue;
            _OrderBase.OA01014 = this.txtOA01014.Text.Trim();
            _OrderBase.OA01015 = Request.Form["txtOA01015"].Trim();
            if (!string.IsNullOrEmpty(this.ddlOA01016.SelectedValue))
            {
                _OrderBase.OA01016 = Convert.ToDecimal(this.ddlOA01016.SelectedValue);
            }
            else
            {
                _OrderBase.OA01016 = 0;
            }
            _OrderBase.OA01017 = Request.Form["txtOA01017"].Trim();
            if (!string.IsNullOrEmpty(this.ddlOA01018.SelectedValue))
            {
                _OrderBase.OA01018 = Convert.ToDecimal(this.ddlOA01018.SelectedValue);
            }
            else
            {
                _OrderBase.OA01018 = 0;
            }
            if (!string.IsNullOrEmpty(Request.Form["txtOA01019"].Trim()))
            {
                _OrderBase.OA01019 = Convert.ToDecimal(Request.Form["txtOA01019"].Trim());
            }
            if (!string.IsNullOrEmpty(Request.Form["txtOA01020"].Trim()))
            {
                _OrderBase.OA01020 = Convert.ToDecimal(Request.Form["txtOA01020"].Trim());
            }
            if (!string.IsNullOrEmpty(this.txtOA01021.Text.Trim()))
            {
                _OrderBase.OA01021 = Convert.ToDecimal(this.txtOA01021.Text.Trim());
            }
            if (!string.IsNullOrEmpty(Request.Form["txtOA01022"].Trim()))
            {
                _OrderBase.OA01022 = Convert.ToDecimal(Request.Form["txtOA01022"].Trim());
            }
            if (!string.IsNullOrEmpty(Request.Form["txtOA01023"].Trim()))
            {
                _OrderBase.OA01023 = Convert.ToDecimal(Request.Form["txtOA01023"].Trim().Replace('%', '0')) / 100;
            }
            _OrderBase.OA01024 = this.rbtnOA01024Yes.Checked ? this.txtOA01024.Text.Trim() : string.Empty;
            _OrderBase.OA01025 = Convert.ToInt32(this.ddlOA01025.SelectedValue);
            _OrderBase.OA01026 = this.txtOA01026.Text.Trim();
            _OrderBase.OA01027 = this.txtOA01027.Text.Trim();
            _OrderBase.OA01028 = this.txtOA01028.Text.Trim();
            _OrderBase.OA01029 = this.txtOA01029.Text.Trim();
            _OrderBase.OA01030 = this.txtOA01030.Text.Trim();
            _OrderBase.OA01031 = this.txtOA01031.Text.Trim();
            _OrderBase.OA01032 = this.txtOA01032.Text.Trim();
            _OrderBase.OA01033 = this.txtOA01033.Text.Trim();
            _OrderBase.OA01034 = this.txtOA01034.Text.Trim();
            _OrderBase.OA01035 = this.txtOA01035.Text.Trim();

            #region 获取客户的信息
            DataTable dt = new CustomerBLL().SelectCustomerBase(string.Format(" AND CA01001 = '{0}'", Request.QueryString["CA01001"]));
            if (dt.Rows.Count < 1)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('数据异常!');window.location.href='/Index.aspx';</script>");
                return;
            }
            #endregion

            _OrderBase.OA01036 = dt.Rows[0]["CA01002"].ToString();            //客户编码
            _OrderBase.OA01037 = (Session["USER_SESSION"] as UserBase).UA01001;
            _OrderBase.OA01038 = Convert.ToInt32(dt.Rows[0]["CA01001"]);
            _OrderBase.OA01039 = "";                                         //主订单编号
            if (!string.IsNullOrEmpty(dt.Rows[0]["CA01019"].ToString()))
            {
                _OrderBase.OA01040 = Convert.ToInt32(dt.Rows[0]["CA01019"]);
            }
            if (!string.IsNullOrEmpty(dt.Rows[0]["CA01020"].ToString()))
            {
                _OrderBase.OA01041 = Convert.ToInt32(dt.Rows[0]["CA01020"]);
            }
            if (!string.IsNullOrEmpty(dt.Rows[0]["CA01022"].ToString()))
            {
                _OrderBase.OA01042 = Convert.ToInt32(dt.Rows[0]["CA01022"]);
            }
            if (!string.IsNullOrEmpty(dt.Rows[0]["CA01023"].ToString()))
            {
                _OrderBase.OA01043 = Convert.ToInt32(dt.Rows[0]["CA01023"]);
            }
            _OrderBase.OA01044 = this.rbtnOA01044Yes.Checked ? 1 : 0;
            _OrderBase.OA01045 = this.rbtnOA01045Yes.Checked ? 1 : 0;
            _OrderBase.OA01046 = this.txtOA01046.Text.Trim();
            _OrderBase.OA01047 = this.ddlOA01047.SelectedValue;
            _OrderBase.OA01048 = this.txtOA01048.Text.Trim();
            _OrderBase.OA01049 = this.txtOA01049.Text.Trim();
            _OrderBase.OA01050 = this.txtOA01050.Text.Trim();
            _OrderBase.OA01053 = this.txtOA01053.Text.Trim();
            _OrderBase.OA01054 = int.Parse(this.ddlOA01054.SelectedValue);
            if (!string.IsNullOrEmpty(this.txtOA01051.Text.Trim()))
            {
                _OrderBase.OA01051 = Convert.ToDateTime(this.txtOA01051.Text.Trim());
            }
            _OrderBase.OA01999 = ViewState["OA01999"].ToString();
            _OrderBase.OA01055 = this.ddlOA01055.SelectedValue;
            _OrderBase.OA01056 = this.ddlOA01056.SelectedValue;
            _OrderBase.OA01057 = this.ddlOA01055.SelectedItem.Text.Equals("请选择") ? string.Empty : this.ddlOA01055.SelectedItem.Text;
            _OrderBase.OA01058 = this.ddlOA01056.SelectedItem.Text.Equals("请选择") ? string.Empty : this.ddlOA01056.SelectedItem.Text;
            _OrderBase.OA01060 = Convert.ToDecimal(new OrderBLL().SelectOrderBaseById(_OrderBase.OA01001.ToString()).Rows[0]["OA01060"]);

            #endregion

            #region 销售单明细
            List <OrderProduct> listOrderProduct = new List <OrderProduct>();
            if (!string.IsNullOrEmpty(this.txtmingxi.Value)) //判断是否有订单明细数据
            {
                string   strmingxi = this.txtmingxi.Value;   //获取明细数据
                string[] strrow    = strmingxi.Split(new[] { "_&_" }, StringSplitOptions.None);
                if (strrow.Length > 0)
                {
                    foreach (string itemrow in strrow)
                    {
                        string[] strcolumns = itemrow.Split(new[] { "_^_" }, StringSplitOptions.None);
                        if (strcolumns.Length > 0)
                        {
                            if (strcolumns[0].Trim() != "")
                            {
                                OrderProduct _OrderProduct = new OrderProduct();
                                _OrderProduct.OB01002 = _OrderBase.OA01999;                     //订单编号
                                _OrderProduct.OB01003 = 1;
                                _OrderProduct.OB01004 = Convert.ToInt32(strcolumns[10].Trim()); //商品Id
                                _OrderProduct.OB01005 = strcolumns[0].Trim();                   //商品型号
                                _OrderProduct.OB01006 = strcolumns[1].Trim();                   //商品描述
                                if (!string.IsNullOrEmpty(strcolumns[2].Trim()))
                                {
                                    _OrderProduct.OB01007 = Convert.ToInt32(strcolumns[2].Trim());  //商品数量
                                }
                                if (!string.IsNullOrEmpty(strcolumns[3].Trim()))
                                {
                                    _OrderProduct.OB01008 = Convert.ToDecimal(strcolumns[3].Trim());  //含税单价(含税价格)
                                }
                                if (!string.IsNullOrEmpty(strcolumns[4].Trim()))
                                {
                                    _OrderProduct.OB01009 = Convert.ToDecimal(strcolumns[4].Trim());  //含税总价(含税总计)
                                }
                                if (!string.IsNullOrEmpty(strcolumns[5].Trim()))
                                {
                                    _OrderProduct.OB01010 = Convert.ToDecimal(strcolumns[5].Trim());  //不含税单价(不含税价格)
                                }
                                if (!string.IsNullOrEmpty(strcolumns[6].Trim()))
                                {
                                    _OrderProduct.OB01011 = Convert.ToDecimal(strcolumns[6].Trim());  //不含税总价(不含税总计)
                                }
                                if (!string.IsNullOrEmpty(strcolumns[7].Trim()))
                                {
                                    _OrderProduct.OB01012 = Convert.ToDecimal(strcolumns[7].Trim());  //税额
                                }
                                if (!string.IsNullOrEmpty(strcolumns[8].Trim()))
                                {
                                    _OrderProduct.OB01013 = Convert.ToDecimal(strcolumns[8].Trim());  //单位成本
                                }
                                if (!string.IsNullOrEmpty(strcolumns[9].Trim()))
                                {
                                    _OrderProduct.OB01014 = Convert.ToDecimal(strcolumns[9].Trim()); //合计成本
                                }
                                _OrderProduct.OB01999 = Guid.NewGuid().ToString();                   //GUID
                                listOrderProduct.Add(_OrderProduct);
                            }
                        }
                    }
                }
            }

            #endregion

            #region 销售发票
            List <OrderInvoice> listOrderInvoice = new List <OrderInvoice>();
            if (!string.IsNullOrEmpty(this.txtfapiao.Value)) //判断是否有发票数据
            {
                string   strfapiao = this.txtfapiao.Value;   //获取发票数据
                string[] strrow1   = strfapiao.Split('&');
                if (strrow1.Length > 0)
                {
                    int i = 0;
                    foreach (string itemrow in strrow1)
                    {
                        string[] strcolumns = itemrow.Split('^');
                        if (strcolumns.Length > 0)
                        {
                            OrderInvoice _OrderInvoice = new OrderInvoice();
                            if (!string.IsNullOrEmpty(strcolumns[0].Trim()))
                            {
                                _OrderInvoice.OC01002 = Convert.ToInt32(strcolumns[0].Trim()); //序号
                            }
                            _OrderInvoice.OC01003 = listOrderProduct[i].OB01999.ToString();    //商品GUID;
                            _OrderInvoice.OC01004 = 1;                                         //销售单
                            _OrderInvoice.OC01005 = strcolumns[1].Trim();                      //型号
                            if (!string.IsNullOrEmpty(strcolumns[2].Trim()))
                            {
                                _OrderInvoice.OC01006 = Convert.ToInt32(strcolumns[2].Trim());  //数量
                            }
                            if (!string.IsNullOrEmpty(strcolumns[3].Trim()))
                            {
                                _OrderInvoice.OC01007 = Convert.ToInt32(strcolumns[3].Trim() == "N" ? "0" : "1");  //是否到货
                            }
                            if (!string.IsNullOrEmpty(strcolumns[4].Trim()))
                            {
                                _OrderInvoice.OC01008 = strcolumns[4].Trim();  //到货批次
                            }
                            if (!string.IsNullOrEmpty(strcolumns[5].Trim()))
                            {
                                _OrderInvoice.OC01009 = Convert.ToDateTime(strcolumns[5].Trim()); //到货时间
                            }
                            if (!string.IsNullOrEmpty(strcolumns[6].Trim()))
                            {
                                _OrderInvoice.OC01010 = Convert.ToInt32(strcolumns[6].Trim() == "N" ? "0" : "1");  //是否到货
                            }
                            if (!string.IsNullOrEmpty(strcolumns[7].Trim()))
                            {
                                _OrderInvoice.OC01011 = Convert.ToDateTime(strcolumns[7].Trim()); //发货时间
                            }
                            _OrderInvoice.OC01012 = strcolumns[8].Trim();
                            _OrderInvoice.OC01013 = strcolumns[9].Trim();

                            if (!string.IsNullOrEmpty(strcolumns[11].Trim()))
                            {
                                _OrderInvoice.OC01014 = Convert.ToInt32(strcolumns[11].Trim() == "N" ? "0" : "1");  //是否开发票
                            }
                            if (!string.IsNullOrEmpty(strcolumns[12].Trim()))
                            {
                                _OrderInvoice.OC01015 = Convert.ToDateTime(strcolumns[12].Trim());//开发票时间
                            }
                            _OrderInvoice.OC01017 = strcolumns[14].Trim();
                            _OrderInvoice.OC01018 = strcolumns[13].Trim();

                            _OrderInvoice.OC01019 = strcolumns[10].Trim();
                            _OrderInvoice.OC01020 = strcolumns[15].Trim();

                            listOrderInvoice.Add(_OrderInvoice);
                            i++;
                        }
                    }
                }
            }

            #endregion

            #region 付款信息

            OrderPayment _OrderPayment = new OrderPayment();
            _OrderPayment.OP01002 = this.labOP01002.InnerText.Trim();
            _OrderPayment.OP01003 = _OrderBase.OA01999; //订单GUID
            if (!string.IsNullOrEmpty(this.txtOA01009.Text.Trim()))
            {
                _OrderPayment.OP01004 = Convert.ToDateTime(this.txtOA01009.Text.Trim());
            }
            if (!string.IsNullOrEmpty(Request.Form["txtOA01020"]))
            {
                _OrderPayment.OP01005 = Convert.ToDecimal(Request.Form["txtOA01020"]);
            }
            //if (!string.IsNullOrEmpty(this.ddlOP01006.SelectedValue)) _OrderPayment.OP01006 = Convert.ToInt32(this.ddlOP01006.SelectedValue);
            if (!string.IsNullOrEmpty(this.txtOP01007.Text.Trim()))
            {
                _OrderPayment.OP01007 = Convert.ToDecimal(this.txtOP01007.Text.Trim());
            }

            _OrderPayment.OP01008 = this.txtOP01008.Text.Trim();

            if (!string.IsNullOrEmpty(this.txtOP01009.Text.Trim()))
            {
                _OrderPayment.OP01009 = Convert.ToDecimal(this.txtOP01009.Text.Trim());
            }
            _OrderPayment.OP01010 = this.txtOP01010.Text.Trim();

            if (!string.IsNullOrEmpty(this.txtOP01011.Text.Trim()))
            {
                _OrderPayment.OP01011 = Convert.ToDecimal(this.txtOP01011.Text.Trim());
            }

            _OrderPayment.OP01012 = this.txtOP01012.Text.Trim();


            if (!string.IsNullOrEmpty(this.txtOP01013.Text.Trim()))
            {
                _OrderPayment.OP01013 = Convert.ToDecimal(this.txtOP01013.Text.Trim());
            }

            _OrderPayment.OP01014 = this.txtOP01014.Text.Trim();

            if (!string.IsNullOrEmpty(this.txtOP01015.Value.Trim()))
            {
                _OrderPayment.OP01015 = Convert.ToDecimal(this.txtOP01015.Value.Trim());
            }

            if (!string.IsNullOrEmpty(this.txtOP01016.Value.Trim()))
            {
                _OrderPayment.OP01016 = Convert.ToDecimal(this.txtOP01016.Value.Trim());
            }


            #region 添加5 6 7付款

            if (!string.IsNullOrEmpty(this.txtOP01017.Text.Trim()))
            {
                _OrderPayment.OP01017 = Convert.ToDecimal(this.txtOP01017.Text.Trim());
            }
            if (!string.IsNullOrEmpty(this.txtOP01018.Text.Trim()))
            {
                _OrderPayment.OP01018 = this.txtOP01018.Text.Trim();
            }
            if (!string.IsNullOrEmpty(this.txtOP01019.Text.Trim()))
            {
                _OrderPayment.OP01019 = Convert.ToDecimal(this.txtOP01019.Text.Trim());
            }
            if (!string.IsNullOrEmpty(this.txtOP01020.Text.Trim()))
            {
                _OrderPayment.OP01020 = this.txtOP01020.Text.Trim();
            }

            if (!string.IsNullOrEmpty(this.txtOP01021.Text.Trim()))
            {
                _OrderPayment.OP01021 = Convert.ToDecimal(this.txtOP01021.Text.Trim());
            }
            if (!string.IsNullOrEmpty(this.txtOP01022.Text.Trim()))
            {
                _OrderPayment.OP01022 = this.txtOP01022.Text.Trim();
            }

            #endregion

            _OrderPayment.OP01023 = this.txtOP01023.Text.Trim();

            #endregion

            int result = Math.Abs(_OrderBLL.ModOrderBase(_OrderBase, listOrderProduct, listOrderInvoice, _OrderPayment));
            new Sinoo.Common.MessageShow().InsertMessage(this, result, string.Format("window.location.href='{0}'", LinkReturn()));
        }
Ejemplo n.º 17
0
        protected void Page_Load(object sender, EventArgs e)
        {
            CC = RequestData.Get <string>("CC");
            string ids = RequestData.Get <string>("ids");

            string[] idArray = null;
            if (!string.IsNullOrEmpty(ids))
            {
                idArray = ids.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
            }
            switch (RequestActionString)
            {
            case "CancelCorrespond":
                foreach (string str in idArray)    //可以同时对多个付款进行撤销对应
                {
                    piEnt = PaymentInvoice.Find(str);
                    string[] invoiceArray = piEnt.CorrespondInvoice.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                    for (int i = 0; i < invoiceArray.Length; i++)
                    {
                        int          index  = invoiceArray[i].IndexOf("_");
                        string       number = invoiceArray[i].Substring(0, index); //找到对应的发票号和销账金额 对发票进行回滚
                        decimal      amount = Convert.ToDecimal(invoiceArray[i].Substring(index + 1));
                        OrderInvoice oiEnt  = OrderInvoice.FindAllByProperty(OrderInvoice.Prop_Number, number).FirstOrDefault <OrderInvoice>();
                        oiEnt.PayAmount = oiEnt.PayAmount - amount;
                        oiEnt.PayState  = oiEnt.PayAmount > 0 ? "部分付款" : "";
                        oiEnt.DoUpdate();
                    }
                    piEnt.CorrespondAmount  = 0;
                    piEnt.CorrespondInvoice = "";
                    piEnt.CorrespondState   = "";
                    piEnt.Name = "暂不销账";
                    piEnt.DoUpdate();
                }
                break;

            case "AutoCorrespond":
                foreach (string id in idArray)
                {
                    piEnt = PaymentInvoice.Find(id);
                    sql   = @"select sum(Amount-isnull(PayAmount,0)) from SHHG_AimExamine..OrderInvoice where (PayState is null or PayState<>'已全部付款') and CId='" + piEnt.CId + "'";
                    decimal shouldpayAmount = DataHelper.QueryValue <decimal>(sql);   //合计应付金额
                    if (shouldpayAmount > 0)
                    {
                        decimal validAmount = piEnt.Money.Value - (piEnt.CorrespondAmount.HasValue ? piEnt.CorrespondAmount.Value : 0); //有效金额
                        if (shouldpayAmount >= validAmount)                                                                             //如果 付款金额小于等于应付款总额
                        {
                            sql = @"select * from SHHG_AimExamine..OrderInvoice where (PayState is null or PayState<>'已全部付款') and CId='" + piEnt.CId + "' order by InvoiceDate asc";
                            IList <EasyDictionary> dics = DataHelper.QueryDictList(sql);
                            //decimal payamount = piEnt.Money.Value;
                            foreach (EasyDictionary dic in dics)
                            {
                                if (validAmount > 0)
                                {
                                    OrderInvoice oiEnt = OrderInvoice.Find(dic.Get <string>("Id"));
                                    if (validAmount >= (oiEnt.Amount.Value - (oiEnt.PayAmount.HasValue ? oiEnt.PayAmount.Value : 0)))    //大于等于该发票的未付金额
                                    {
                                        validAmount              = validAmount - (oiEnt.Amount.Value - (oiEnt.PayAmount.HasValue ? oiEnt.PayAmount.Value : 0));
                                        oiEnt.PayState           = "已全部付款";
                                        piEnt.CorrespondInvoice += (string.IsNullOrEmpty(piEnt.CorrespondInvoice) ? "" : ",") + oiEnt.Number + "_" + (oiEnt.Amount - (oiEnt.PayAmount.HasValue ? oiEnt.PayAmount.Value : 0));
                                        oiEnt.PayAmount          = oiEnt.Amount;
                                    }
                                    else
                                    {
                                        oiEnt.PayAmount          = (oiEnt.PayAmount.HasValue ? oiEnt.PayAmount.Value : 0) + validAmount;
                                        oiEnt.PayState           = "部分付款";
                                        piEnt.CorrespondInvoice += (string.IsNullOrEmpty(piEnt.CorrespondInvoice) ? "" : ",") + oiEnt.Number + "_" + validAmount;
                                        validAmount              = 0;
                                    }
                                    oiEnt.DoUpdate();
                                }
                            }
                            piEnt.CorrespondAmount = piEnt.Money;
                            piEnt.CorrespondState  = "已对应";
                            piEnt.Name             = "自动销账";
                            piEnt.DoUpdate();
                        }
                        else     //如果付款金额大于应付款总金额
                        {
                            sql = @"select * from SHHG_AimExamine..OrderInvoice where (PayState is null or PayState<>'已全部付款') and CId='" + piEnt.CId + "' order by InvoiceDate asc";
                            IList <EasyDictionary> dics = DataHelper.QueryDictList(sql);
                            foreach (EasyDictionary dic in dics)
                            {
                                OrderInvoice oiEnt = OrderInvoice.Find(dic.Get <string>("Id"));
                                piEnt.CorrespondInvoice += (string.IsNullOrEmpty(piEnt.CorrespondInvoice) ? "" : ",") + oiEnt.Number + "_" + (oiEnt.Amount - (oiEnt.PayAmount.HasValue ? oiEnt.PayAmount.Value : 0));
                                piEnt.CorrespondState    = "部分对应";
                                piEnt.CorrespondAmount   = (piEnt.CorrespondAmount.HasValue ? piEnt.CorrespondAmount.Value : 0) + shouldpayAmount;
                                piEnt.DoUpdate();
                                oiEnt.PayState  = "已全部付款";
                                oiEnt.PayAmount = oiEnt.Amount;
                                oiEnt.DoUpdate();
                            }
                        }
                    }
                }
                break;

            case "delete":
                foreach (string str in idArray)
                {
                    piEnt = PaymentInvoice.Find(str);
                    piEnt.DoDelete();
                }
                break;

            default:
                DoSelect();
                break;
            }
        }
Ejemplo n.º 18
0
        private void UpdateOrderInvoice()//销售付款创建完毕后  如果该客户有应付款记录   开始执行对应操作
        {
            if (ent.Name == "自动销账")
            {
                PaymentInvoice piEnt = ent;
                piEnt.CorrespondInvoice = "";
                sql = @"select sum(Amount-isnull(PayAmount,0)) from SHHG_AimExamine..OrderInvoice where (PayState is null or PayState<>'已全部付款') and CId='" + piEnt.CId + "'";
                decimal shouldpayAmount = DataHelper.QueryValue <decimal>(sql);//合计应付金额

                if (shouldpayAmount > 0)
                {
                    decimal validAmount = piEnt.Money.Value - (piEnt.CorrespondAmount.HasValue ? piEnt.CorrespondAmount.Value : 0); //有效金额
                    if (shouldpayAmount >= validAmount)                                                                             //如果有效金额小于等于应付款总额
                    {
                        sql = @"select * from SHHG_AimExamine..OrderInvoice where (PayState is null or PayState<>'已全部付款') and CId='" + piEnt.CId + "' order by InvoiceDate asc";
                        IList <EasyDictionary> dics = DataHelper.QueryDictList(sql);
                        foreach (EasyDictionary dic in dics)
                        {
                            if (validAmount > 0)
                            {
                                OrderInvoice oiEnt = OrderInvoice.Find(dic.Get <string>("Id"));
                                if (validAmount >= (oiEnt.Amount.Value - (oiEnt.PayAmount.HasValue ? oiEnt.PayAmount.Value : 0)))//大于等于该发票的未付金额
                                {
                                    validAmount              = validAmount - (oiEnt.Amount.Value - (oiEnt.PayAmount.HasValue ? oiEnt.PayAmount.Value : 0));
                                    oiEnt.PayState           = "已全部付款";
                                    piEnt.CorrespondInvoice += (string.IsNullOrEmpty(piEnt.CorrespondInvoice) ? "" : ",") + oiEnt.Number + "_" + (oiEnt.Amount - (oiEnt.PayAmount.HasValue ? oiEnt.PayAmount.Value : 0));
                                    oiEnt.PayAmount          = oiEnt.Amount;
                                }
                                else
                                {
                                    oiEnt.PayAmount          = (oiEnt.PayAmount.HasValue ? oiEnt.PayAmount.Value : 0) + validAmount;
                                    oiEnt.PayState           = "部分付款";
                                    piEnt.CorrespondInvoice += (string.IsNullOrEmpty(piEnt.CorrespondInvoice) ? "" : ",") + oiEnt.Number + "_" + validAmount;
                                    validAmount              = 0;
                                }
                                oiEnt.DoUpdate();
                            }
                        }
                        piEnt.CorrespondAmount = piEnt.Money;
                        piEnt.CorrespondState  = "已对应";
                        piEnt.Name             = "自动销账";
                        piEnt.DoUpdate();
                    }
                    else //如果付款金额大于应付款总金额
                    {
                        sql = @"select * from SHHG_AimExamine..OrderInvoice where (PayState is null or PayState<>'已全部付款') and CId='" + piEnt.CId + "' order by InvoiceDate asc";
                        IList <EasyDictionary> dics = DataHelper.QueryDictList(sql);
                        foreach (EasyDictionary dic in dics)
                        {
                            OrderInvoice oiEnt = OrderInvoice.Find(dic.Get <string>("Id"));
                            piEnt.CorrespondInvoice += (string.IsNullOrEmpty(piEnt.CorrespondInvoice) ? "" : ",") + oiEnt.Number + "_" + (oiEnt.Amount - (oiEnt.PayAmount.HasValue ? oiEnt.PayAmount.Value : 0));
                            piEnt.CorrespondState    = "部分对应";
                            piEnt.CorrespondAmount   = (piEnt.CorrespondAmount.HasValue ? piEnt.CorrespondAmount.Value : 0) + shouldpayAmount;
                            piEnt.DoUpdate();
                            oiEnt.PayState  = "已全部付款";
                            oiEnt.PayAmount = oiEnt.Amount;
                            oiEnt.DoUpdate();
                        }
                    }
                }
            }
            if (ent.Name == "手动销账")
            {
                string[] orderinvoiceArray = ent.CorrespondInvoice.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                ent.CorrespondInvoice = "";
                foreach (string str in orderinvoiceArray)
                {
                    OrderInvoice oiEnt = OrderInvoice.FindAllByProperty(OrderInvoice.Prop_Number, str).FirstOrDefault <OrderInvoice>();
                    ent.CorrespondInvoice += oiEnt.Number + "_" + (oiEnt.Amount - (oiEnt.PayAmount.HasValue ? oiEnt.PayAmount.Value : 0)) + ",";
                    oiEnt.PayAmount        = oiEnt.Amount;
                    oiEnt.PayState         = "已全部付款";
                    oiEnt.DoUpdate();
                }
                ent.CorrespondState = "已对应";
                ent.DoUpdate();
            }
            if (ent.Name == "暂不销账")
            {
                ent.CorrespondInvoice = "";
                ent.DoUpdate();
            }
        }
Ejemplo n.º 19
0
 /// <inheritdoc cref="SubmitOrderAsync(string, OrderBasic, OrderSku[], OrderInvoice, OrderReserving)"/>
 public async Task <RspResult <OrderSubmitResult> > SubmitOrderAsync(OrderBasic basic, OrderSku[] sku, OrderInvoice invoice, OrderReserving reserving = null)
 => await SubmitOrderAsync(this.AccessToken, basic, sku, invoice, reserving);
Ejemplo n.º 20
0
        static void Main(string[] args)
        {
            int choice    = 0;
            var dbContext = new ToyManufacturerDbEntities();

            Console.WriteLine("1. Add offers");
            Console.WriteLine("2. Add Customer");
            Console.WriteLine("3. Login Customer");
            Console.WriteLine("4. Add Plants");
            Console.WriteLine("5. Add Toy");
            Console.WriteLine("Enter Your Choice : ");
            choice = Convert.ToInt32(Console.ReadLine());
            do
            {
                switch (choice)
                {
                case 1:
                    Offer offer = new Offer();
                    offer.GetData();
                    dbContext.Offers.Add(offer);
                    dbContext.SaveChanges();
                    Console.WriteLine("Offer Added Successfully");
                    break;

                case 2:
                    Customer customer = new Customer();
                    customer.GetData();
                    var check = dbContext.Customers.SingleOrDefault(t => t.CustomerEmail == customer.CustomerEmail);
                    if (check == null)
                    {
                        try
                        {
                            dbContext.Customers.Add(customer);
                            dbContext.SaveChanges();
                            Console.WriteLine("Customer Added Successfully");
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Customer Already Exists");
                    }
                    break;

                case 3:
                    login();
                    break;

                case 4:
                    Plant plant = new Plant();
                    plant.GetData();
                    dbContext.Plants.Add(plant);
                    break;

                case 5:
                    Toy toy = new Toy();
                    toy.GetData();
                    dbContext.Toys.Add(toy);
                    dbContext.SaveChanges();
                    break;
                }

                Console.WriteLine("Enter Your Choice : ");
                choice = Convert.ToInt32(Console.ReadLine());
            } while (choice != 0);
            void login()
            {
                using (dbContext)
                {
                    var customer = new Customer();
                    Console.WriteLine("Enter Your Email Id : ");
                    customer.CustomerEmail = Console.ReadLine();
                    var check = dbContext.Customers.SingleOrDefault(t => t.CustomerEmail == customer.CustomerEmail);
                    if (check == null)
                    {
                        Console.WriteLine("Please Enter Valid Credentials");
                    }
                    else
                    {
                        Console.WriteLine("You have logged in successfully");
                        AddOrder(check.CustomerId);
                    }
                }
            }

            void AddOrder(int customerid)
            {
                using (dbContext) {
                    var order = new Order();
                    var toy   = new Toy();
                    toy.List();
                    Console.WriteLine("Enter you want to Buy Toy Id :");
                    order.CustomerId = customerid;
                    ShowAddress(customerid);
                    Console.WriteLine("Enter Address id where you want delivery: ");
                    order.AddressId = Convert.ToInt32(Console.ReadLine());
                    try
                    {
                        dbContext.Orders.Add(order);
                        dbContext.SaveChanges();
                        var orderInvoice = dbContext.Orders.Where(t => t.CustomerId == customerid).FirstOrDefault();
                        var orderId      = orderInvoice.OrderId;
                        Console.WriteLine("Enter ToyId you want Buy :");
                        var toyid = Convert.ToInt32(Console.ReadLine());
                        AddOrderInvoiceDetail(orderId, toyid);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                }
            }

            void AddOrderInvoiceDetail(int orderid, int toyid)
            {
                using (dbContext)
                {
                    var orderInvoice = new OrderInvoice();
                    orderInvoice.OrderId = orderid;
                    orderInvoice.ToyId   = toyid;
                    try
                    {
                        dbContext.OrderInvoices.Add(orderInvoice);
                        dbContext.SaveChanges();
                        Console.WriteLine("Your Invoice is Generated");
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                }
            }

            void ShowAddress(int customerid)
            {
                var addressList = dbContext.Addresses.Where(t => t.CustomerId == customerid);

                if (addressList != null)
                {
                    Console.WriteLine("AddressId \t Location \t City \tPincode");
                }
                foreach (var address in addressList)
                {
                    Console.WriteLine(address.AddressId + address.AddressLocation + address.City + address.Pincode);
                }
            }
        }
Ejemplo n.º 21
0
        /// <summary>
        ///   提交订单信息,生成京东订单。
        /// </summary>
        /// <param name="token">授权时获取的 AccessToken</param>
        /// <param name="basic">用户订单基础信息</param>
        /// <param name="sku">订单商品列表</param>
        /// <param name="invoice">发票信息</param>
        /// <param name="reserving">配送预约信息</param>
        public static async Task <RspResult <OrderSubmitResult> > SubmitOrderAsync(string token, OrderBasic basic, OrderSku[] sku, OrderInvoice invoice, OrderReserving reserving = null)
        {
            if (string.IsNullOrEmpty(token))
            {
                throw AccessTokenArgumentException;
            }

            var parameter = new Dictionary <string, string>
            {
                { "token", token },
                { "sku", $"[{string.Join(',', sku.Select(v => v.ToString()))}]" },
            };
            var union = parameter.Union(basic.KV);

            union = union.Union(invoice.KV);
            if (reserving != null)
            {
                union = union.Union(reserving.KV);
            }
            var url = "/api/order/submitOrder";

            return(await PostAsync <OrderSubmitResult>(url, union.ToDictionary(v => v.Key, v => v.Value)));
        }
Ejemplo n.º 22
0
        /// <summary>
        /// 保存数据
        /// </summary>
        private void DataSave()
        {
            if (string.IsNullOrEmpty(Request.QueryString["OA01001"]))
            {
                return;
            }
            #region 退货订单

            DataTable dt         = _OrderBLL.SelectOrderBaseByCustomerId(this.txtOA01039.Text.Trim()); //根据订单查询客户编码
            OrderBase _OrderBase = new OrderBase();
            _OrderBase.OA01001 = Convert.ToInt32(Request.QueryString["OA01001"]);
            _OrderBase.OA01002 = this.txtOA01002.Text.Trim();
            _OrderBase.OA01003 = 2;  //退货单
            _OrderBase.OA01004 = 1;  //下单
            _OrderBase.OA01008 = this.txtOA01008.Text.Trim();
            _OrderBase.OA01009 = Convert.ToDateTime(this.txtOA01009.Text.Trim());
            _OrderBase.OA01015 = Request.Form["txtOA01015"];
            _OrderBase.OA01017 = Request.Form["txtOA01017"];
            _OrderBase.OA01020 = string.IsNullOrEmpty(this.txtOA01020.Value.Trim()) || this.txtOA01020.Value.Trim() == ""
                ? 0
                : Convert.ToDecimal("-" + this.txtOA01020.Value.Trim());
            _OrderBase.OA01021 = string.IsNullOrEmpty(this.txtOA01021.Value.Trim()) || this.txtOA01020.Value.Trim() == ""
                ? 0
                : Convert.ToDecimal(this.txtOA01021.Value.Trim());
            _OrderBase.OA01022 = string.IsNullOrEmpty(this.txtOA01020.Value.Trim()) || this.txtOA01020.Value.Trim() == ""
                ? 0
                : Convert.ToDecimal("-" + this.txtOA01022.Value.Trim());
            _OrderBase.OA01027 = this.txtOA01027.Text.Trim();
            _OrderBase.OA01036 = dt.Rows[0]["OA01036"].ToString();  //客户编码
            _OrderBase.OA01039 = this.txtOA01039.Text.Trim();
            _OrderBase.OA01049 = this.txtOA01049.Text.Trim();
            _OrderBase.OA01050 = this.txtOA01050.Text.Trim();
            _OrderBase.OA01013 = this.txtOA01013.Value;
            _OrderBase.OA01060 = Convert.ToDecimal(new OrderBLL().SelectOrderBaseById(_OrderBase.OA01001.ToString()).Rows[0]["OA01060"]);
            if (ddlOA01016.SelectedValue != "")
            {
                _OrderBase.OA01016 = Convert.ToDecimal(ddlOA01016.SelectedValue);
            }
            if (ddlOA01018.SelectedValue != "")
            {
                _OrderBase.OA01018 = Convert.ToDecimal(ddlOA01018.SelectedValue);
            }
            _OrderBase.OA01025 = Convert.ToInt32(ddlOA01025.SelectedValue);
            _OrderBase.OA01999 = ViewState["OA01999"].ToString();
            if (rbtnOA01005No.Checked)
            {
                _OrderBase.OA01005 = 0;
            }
            if (rbtnOA01005Yew.Checked)
            {
                _OrderBase.OA01005 = 1;
            }

            #endregion

            #region 退货订单明细

            List <OrderProduct> listOrderProduct = new List <OrderProduct>();
            if (!string.IsNullOrEmpty(this.txtmingxi.Value)) //判断是否有订单明细数据
            {
                string   strmingxi = this.txtmingxi.Value;   //获取明细数据
                string[] strrow    = strmingxi.Split(new[] { "_&_" }, StringSplitOptions.None);
                if (strrow.Length > 0)
                {
                    foreach (string itemrow in strrow)
                    {
                        string[] strcolumns = itemrow.Split(new[] { "_^_" }, StringSplitOptions.None);
                        if (strcolumns.Length > 0)
                        {
                            if (strcolumns[0].Trim() != "")
                            {
                                OrderProduct _OrderProduct = new OrderProduct();
                                _OrderProduct.OB01002 = ViewState["OA01999"].ToString();        //订单编号
                                _OrderProduct.OB01003 = 2;
                                _OrderProduct.OB01004 = Convert.ToInt32(strcolumns[10].Trim()); //商品Id
                                _OrderProduct.OB01005 = strcolumns[0].ToString().Trim();        //商品型号
                                _OrderProduct.OB01006 = strcolumns[1].ToString().Trim();        //商品描述
                                if (strcolumns[2].Trim() != "")
                                {
                                    _OrderProduct.OB01007 = Convert.ToInt32(strcolumns[2].Trim());  //商品数量
                                }
                                if (strcolumns[3].Trim() != "")
                                {
                                    _OrderProduct.OB01008 = Convert.ToDecimal(strcolumns[3].Trim());  //含税单价(含税价格)
                                }
                                if (strcolumns[4].Trim() != "")
                                {
                                    _OrderProduct.OB01009 = Convert.ToDecimal(strcolumns[4].Trim());  //含税总价(含税总计)
                                }
                                if (strcolumns[5].Trim() != "")
                                {
                                    _OrderProduct.OB01010 = Convert.ToDecimal(strcolumns[5].Trim());  //不含税单价(不含税价格
                                }
                                if (strcolumns[6].Trim() != "")
                                {
                                    _OrderProduct.OB01011 = Convert.ToDecimal(strcolumns[6].Trim());  //不含税总价(不含税总计)
                                }
                                if (strcolumns[7].Trim() != "")
                                {
                                    _OrderProduct.OB01012 = Convert.ToDecimal(strcolumns[7].Trim());  //税额
                                }
                                if (strcolumns[8].Trim() != "")
                                {
                                    _OrderProduct.OB01013 = Convert.ToDecimal(strcolumns[8].Trim());  //单位成本
                                }
                                if (strcolumns[9].Trim() != "")
                                {
                                    _OrderProduct.OB01014 = Convert.ToDecimal(strcolumns[9].Trim()); //合计成本
                                }
                                _OrderProduct.OB01999 = Guid.NewGuid().ToString();                   //GUID
                                listOrderProduct.Add(_OrderProduct);
                            }
                        }
                    }
                }
            }

            #endregion

            #region 退货发票
            List <OrderInvoice> listOrderInvoice = new List <OrderInvoice>();
            if (!string.IsNullOrEmpty(this.txtfapiao.Value)) //判断是否有发票数据
            {
                string   strfapiao = this.txtfapiao.Value;   //获取发票数据
                string[] strrow1   = strfapiao.Split('&');
                if (strrow1.Length > 0)
                {
                    int i = 0;
                    foreach (string itemrow in strrow1)
                    {
                        string[] strcolumns = itemrow.Split('^');
                        if (strcolumns.Length > 0)
                        {
                            OrderInvoice _OrderInvoice = new OrderInvoice();

                            _OrderInvoice.OC01002 = Convert.ToInt32(strcolumns[0].Trim());  //序号
                            _OrderInvoice.OC01003 = listOrderProduct[i].OB01999.ToString(); //商品GUID;
                            _OrderInvoice.OC01004 = 2;                                      //退货单
                            if (strcolumns[1].Trim() != "")
                            {
                                _OrderInvoice.OC01005 = strcolumns[1].ToString().Trim();  //型号
                            }
                            if (strcolumns[2].Trim() != "")
                            {
                                _OrderInvoice.OC01006 = Convert.ToInt32(strcolumns[2].Trim());  //数量
                            }
                            if (strcolumns[3] == "N")
                            {
                                strcolumns[3] = "0";
                            }
                            else
                            {
                                strcolumns[3] = "1";
                            }
                            _OrderInvoice.OC01007 = Convert.ToInt32(strcolumns[3].Trim());  //是否收货
                            if (strcolumns[4].Trim() != "")
                            {
                                _OrderInvoice.OC01009 = Convert.ToDateTime(strcolumns[4].Trim()); //收获时间
                            }
                            if (strcolumns[5] == "N")
                            {
                                strcolumns[5] = "0";
                            }
                            else
                            {
                                strcolumns[5] = "1";
                            }
                            _OrderInvoice.OC01014 = Convert.ToInt32(strcolumns[5].Trim());  //是否开发票
                            if (strcolumns[6].Trim() != "")
                            {
                                _OrderInvoice.OC01016 = Convert.ToDateTime(strcolumns[6].Trim()); //退发票时间
                            }
                            listOrderInvoice.Add(_OrderInvoice);
                            i++;
                        }
                    }
                }
            }

            #endregion

            int num = Math.Abs(_OrderBLL.ModOrderBase(_OrderBase, listOrderProduct, listOrderInvoice));
            new Sinoo.Common.MessageShow().UpdateMessage(this
                                                         , num
                                                         , string.Format("location.href='{0}'", LinkReturn()));
        }
Ejemplo n.º 23
0
 public void Invoice([FromBody] OrderInvoice values)
 {
     _orderInvoice.Insert(values, RequestContext.Principal.Identity.Name);
 }
Ejemplo n.º 24
0
        /// <summary>
        /// 保存数据
        /// </summary>
        private void DataSave()
        {
            #region 退货订单

            DataTable dt = _OrderBLL.SelectOrderBaseByCustomerId(this.txtOA01039.Text.Trim()); //根据订单查询客户编码

            OrderBase _OrderBase = new OrderBase();
            _OrderBase.OA01002 = this.txtOA01002.Text.Trim();
            _OrderBase.OA01003 = 2;  //退货单
            _OrderBase.OA01004 = 1;  //下单
            _OrderBase.OA01008 = this.txtOA01008.Text.Trim();
            _OrderBase.OA01009 = Convert.ToDateTime(this.txtOA01009.Text.Trim());
            _OrderBase.OA01015 = Request.Form["txtOA01015"];
            _OrderBase.OA01016 = 0;
            _OrderBase.OA01017 = Request.Form["txtOA01017"];
            _OrderBase.OA01018 = 0;
            _OrderBase.OA01020 = string.IsNullOrEmpty(this.txtOA01020.Value.Trim()) || this.txtOA01020.Value.Trim() == ""
                ? 0
                : Convert.ToDecimal("-" + this.txtOA01020.Value.Trim());
            _OrderBase.OA01021 = string.IsNullOrEmpty(this.txtOA01021.Value.Trim()) || this.txtOA01021.Value.Trim() == ""
                ? 0
                : Convert.ToDecimal(this.txtOA01021.Value.Trim());
            _OrderBase.OA01022 = string.IsNullOrEmpty(this.txtOA01022.Value.Trim()) || this.txtOA01022.Value.Trim() == ""
                ? 0
                : Convert.ToDecimal("-" + this.txtOA01022.Value.Trim());
            _OrderBase.OA01027 = this.txtOA01027.Text.Trim();
            _OrderBase.OA01036 = dt.Rows[0]["OA01036"].ToString();       //客户编码
            _OrderBase.OA01038 = Convert.ToInt32(dt.Rows[0]["OA01038"]); //客户Id
            _OrderBase.OA01039 = dt.Rows[0]["OA01039"].ToString();       //注订单编号
            if (!(dt.Rows[0]["OA01040"] is DBNull))
            {
                _OrderBase.OA01040 = Convert.ToInt32(dt.Rows[0]["OA01040"]); //行业分类
            }
            if (!(dt.Rows[0]["OA01041"] is DBNull))
            {
                _OrderBase.OA01041 = Convert.ToInt32(dt.Rows[0]["OA01041"]); //行业代码
            }
            if (!(dt.Rows[0]["OA01042"] is DBNull))
            {
                _OrderBase.OA01042 = Convert.ToInt32(dt.Rows[0]["OA01042"]);  //204电子分类
            }
            if (!(dt.Rows[0]["OA01043"] is DBNull))
            {
                _OrderBase.OA01043 = Convert.ToInt32(dt.Rows[0]["OA01043"]);  //220汽车分类
            }
            if (!(dt.Rows[0]["OA01044"] is DBNull))
            {
                _OrderBase.OA01044 = Convert.ToInt32(dt.Rows[0]["OA01044"]);  //是否为新客户
            }
            _OrderBase.OA01039 = this.txtOA01039.Text.Trim();
            _OrderBase.OA01049 = this.txtOA01049.Text.Trim();
            _OrderBase.OA01050 = this.txtOA01050.Text.Trim();
            _OrderBase.OA01013 = this.txtOA01013.Value;
            if (ddlOA01016.SelectedValue != "")
            {
                _OrderBase.OA01016 = Convert.ToDecimal(ddlOA01016.SelectedValue);
            }
            if (ddlOA01018.SelectedValue != "")
            {
                _OrderBase.OA01018 = Convert.ToDecimal(ddlOA01018.SelectedValue);
            }
            _OrderBase.OA01025 = Convert.ToInt32(ddlOA01025.SelectedValue);

            _OrderBase.OA01052 = (Session["USER_SESSION"] as UserBase).UA01001;
            _OrderBase.OA01060 = Convert.ToDecimal(new AreaBLL().GetSettings().Rows[0]["Value"]);
            _OrderBase.OA01999 = Guid.NewGuid().ToString();
            if (rbtnOA01005No.Checked)
            {
                _OrderBase.OA01005 = 0;
            }
            if (rbtnOA01005Yew.Checked)
            {
                _OrderBase.OA01005 = 1;
            }

            #endregion

            #region 退货订单明细
            List <OrderProduct> listOrderProduct = new List <OrderProduct>();
            if (!string.IsNullOrEmpty(this.txtmingxi.Value)) //判断是否有订单明细数据
            {
                string   strmingxi = this.txtmingxi.Value;   //获取明细数据
                string[] strrow    = strmingxi.Split(new[] { "_&_" }, StringSplitOptions.None);

                if (strrow.Length > 0)
                {
                    foreach (string itemrow in strrow)
                    {
                        string[] strcolumns = itemrow.Split(new[] { "_^_" }, StringSplitOptions.None);
                        if (strcolumns.Length > 0)
                        {
                            if (strcolumns[0].Trim() != "")
                            {
                                OrderProduct _OrderProduct = new OrderProduct();
                                _OrderProduct.OB01002 = _OrderBase.OA01999;                     //订单GUID
                                _OrderProduct.OB01003 = 2;
                                _OrderProduct.OB01004 = Convert.ToInt32(strcolumns[10].Trim()); //商品Id
                                _OrderProduct.OB01005 = strcolumns[0].ToString().Trim();        //商品型号
                                _OrderProduct.OB01006 = strcolumns[1].ToString().Trim();        //商品描述
                                if (strcolumns[2].Trim() != "")
                                {
                                    _OrderProduct.OB01007 = Convert.ToInt32(strcolumns[2].Trim());  //商品数量
                                }
                                if (strcolumns[3].Trim() != "")
                                {
                                    _OrderProduct.OB01008 = Convert.ToDecimal(strcolumns[3].Trim());  //含税单价(含税价格)
                                }
                                if (strcolumns[4].Trim() != "")
                                {
                                    _OrderProduct.OB01009 = Convert.ToDecimal(strcolumns[4].Trim());  //含税总价(含税总计)
                                }
                                if (strcolumns[5].Trim() != "")
                                {
                                    _OrderProduct.OB01010 = Convert.ToDecimal(strcolumns[5].Trim());  //不含税单价(不含税价格
                                }
                                if (strcolumns[6].Trim() != "")
                                {
                                    _OrderProduct.OB01011 = Convert.ToDecimal(strcolumns[6].Trim());  //不含税总价(不含税总计)
                                }
                                if (strcolumns[7].Trim() != "")
                                {
                                    _OrderProduct.OB01012 = Convert.ToDecimal(strcolumns[7].Trim());  //税额
                                }
                                if (strcolumns[8].Trim() != "")
                                {
                                    _OrderProduct.OB01013 = Convert.ToDecimal(strcolumns[8].Trim());  //单位成本
                                }
                                if (strcolumns[9].Trim() != "")
                                {
                                    _OrderProduct.OB01014 = Convert.ToDecimal(strcolumns[9].Trim()); //合计成本
                                }
                                _OrderProduct.OB01999 = Guid.NewGuid().ToString();                   //GUID
                                listOrderProduct.Add(_OrderProduct);
                            }
                        }
                    }
                }
            }

            #endregion

            #region 退货发票
            List <OrderInvoice> listOrderInvoice = new List <OrderInvoice>();
            if (!string.IsNullOrEmpty(this.txtfapiao.Value)) //判断是否有发票数据
            {
                string   strfapiao = this.txtfapiao.Value;   //获取发票数据
                string[] strrow1   = strfapiao.Split('&');
                if (strrow1.Length > 0)
                {
                    int i = 0;
                    foreach (string itemrow in strrow1)
                    {
                        string[] strcolumns = itemrow.Split('^');
                        if (strcolumns.Length > 0)
                        {
                            OrderInvoice _OrderInvoice = new OrderInvoice();

                            _OrderInvoice.OC01002 = Convert.ToInt32(strcolumns[0].Trim());  //序号
                            _OrderInvoice.OC01003 = listOrderProduct[i].OB01999.ToString(); //商品GUID;
                            _OrderInvoice.OC01004 = 2;                                      //退货单
                            if (strcolumns[1].Trim() != "")
                            {
                                _OrderInvoice.OC01005 = strcolumns[1].ToString().Trim();  //型号
                            }
                            if (strcolumns[2].Trim() != "")
                            {
                                _OrderInvoice.OC01006 = Convert.ToInt32(strcolumns[2].Trim());  //数量
                            }
                            if (strcolumns[3] == "N")
                            {
                                strcolumns[3] = "0";
                            }
                            else
                            {
                                strcolumns[3] = "1";
                            }
                            _OrderInvoice.OC01007 = Convert.ToInt32(strcolumns[3].Trim());  //是否收货
                            if (strcolumns[4].Trim() != "")
                            {
                                _OrderInvoice.OC01009 = Convert.ToDateTime(strcolumns[4].Trim()); //收获时间
                            }
                            if (strcolumns[5] == "N")
                            {
                                strcolumns[5] = "0";
                            }
                            else
                            {
                                strcolumns[5] = "1";
                            }
                            _OrderInvoice.OC01014 = Convert.ToInt32(strcolumns[5].Trim());  //是否开发票
                            if (strcolumns[6].Trim() != "")
                            {
                                _OrderInvoice.OC01016 = Convert.ToDateTime(strcolumns[6].Trim()); //退发票时间
                            }
                            listOrderInvoice.Add(_OrderInvoice);
                            i++;
                        }
                    }
                }
            }

            #endregion

            int num = Math.Abs(_OrderBLL.AddOrderBase(_OrderBase, listOrderProduct, listOrderInvoice));
            new Sinoo.Common.MessageShow().InsertMessage(this, num, "DataClear()");
        }
Ejemplo n.º 25
0
 public void Invoice(int id, [FromBody] OrderInvoice values)
 {
     _orderInvoice.Update(values, RequestContext.Principal.Identity.Name);
 }