示例#1
0
        /// <summary>
        /// 加载发票信息
        /// </summary>
        /// <param name="invoiceSysNo"></param>
        /// <returns></returns>
        public InvoiceInfo LoadBySysNo(int invoiceSysNo)
        {
            InvoiceMasterInfo             masterInfo      = null;
            List <InvoiceTransactionInfo> transactionList = null;

            //加载Master信息
            DataCommand dataCommand = DataCommandManager.GetDataCommand("GetInvoiceMasterBySysNo");

            dataCommand.SetParameterValue("@InvoiceNumber", invoiceSysNo);
            masterInfo = dataCommand.ExecuteEntity <InvoiceMasterInfo>();

            //加载Transaction列表
            dataCommand = DataCommandManager.GetDataCommand("GetInvoiceTransactionListByMasterSysNo");
            dataCommand.SetParameterValue("@MasterInvoiceNumber", masterInfo.SysNo);
            transactionList = dataCommand.ExecuteEntityList <InvoiceTransactionInfo>();

            InvoiceInfo invoice = new InvoiceInfo()
            {
                SysNo      = masterInfo.SysNo,
                MasterInfo = masterInfo,
                InvoiceTransactionInfoList = transactionList,
                CompanyCode = masterInfo.CompanyCode
            };

            return(invoice);
        }
示例#2
0
 /// <summary>插入发票数据
 /// </summary>
 /// <returns></returns>
 public WCFReturnInfo InsertGoodsOrderInvoice(Guid pushDataId, InvoiceInfo invoice, Guid[] orderIds)
 {
     return(Execute(pushDataId, () =>
     {
         try
         {
             if (invoice.InvoiceId != Guid.Empty && string.IsNullOrEmpty(invoice.InvoiceName))
             {
                 _invoiceDao.SetInvoiceState(invoice.InvoiceId, InvoiceState.Waste, "");
             }
             else
             {
                 Guid warehouseId;
                 var orderNoDic = _goodsOrderWrite.GetOrderNoDicAndWarehouseIdsByOrderIds(orderIds.ToList(), out warehouseId);
                 invoice.DeliverWarehouseId = warehouseId;
                 if (orderNoDic.Count > 0)
                 {
                     _invoiceDao.Insert(invoice, orderNoDic);
                 }
             }
         }
         catch (Exception ex)
         {
             SAL.LogCenter.LogService.LogError(ex.Message, "ERP.Service.InsertGoodsOrderInvoice", ex);
         }
     }));
 }
示例#3
0
        private void B_ok_Click(object sender, EventArgs e)
        {
            decimal nums;

            if (!decimal.TryParse(comboBox1.Text, out nums))
            {
                MessageBox.Show("请输入正确的缴费年限!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            if (!(bitprice > 0))
            {
                MessageBox.Show("参数传递错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            string fa001 = Tools.GetEntityPK("FA01");
            int    re    = RegisterAction.RegisterPay(rc001, fa001, bitprice, nums, Envior.cur_userId);

            if (re > 0)
            {
                dt_rc04.Rows.Clear();
                rc04Adapter.Fill(dt_rc04);

                if (MessageBox.Show("缴费成功!现在打印【发票】吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                {
                    if (!Envior.canInvoice)
                    {
                        MessageBox.Show("当前用户没有打印发票权限!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    if (!Envior.TAX_READY)
                    {
                        MessageBox.Show("金税卡没有打开!", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    else
                    {
                        Frm_taxClientInfo frm_client = new Frm_taxClientInfo();
                        frm_client.swapdata["parent"] = this;
                        frm_client.swapdata["title"]  = FireAction.Get_PassbyName(rc001);
                        if (frm_client.ShowDialog(this) == DialogResult.OK)
                        {
                            InvoiceInfo invClient = this.swapdata["clientinfo"] as InvoiceInfo;

                            //打印发票
                            //PrtServAction.Print_RegisterInvoice(fa001, invClient, this.Handle.ToInt32());
                            PrtServAction.Print_Invoice(fa001, invClient);
                        }
                        frm_client.Dispose();
                    }
                }

                if (MessageBox.Show("现在打印缴费记录吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                {
                    //打印缴费记录
                    PrtServAction.PrtRegisterPayRecord(fa001, this.Handle.ToInt32());
                }
                DialogResult = DialogResult.OK;
                this.Close();
            }
        }
示例#4
0
文件: Invoice.cs 项目: thfthf2/NStore
        private static IUserNOSQLStrategy _usernosql = BMAData.UserNOSQL;//用户非关系型数据库

        /// <summary>
        /// 获得发票信息列表
        /// </summary>
        /// <param name="uid">用户id</param>
        /// <returns></returns>
        public static List <InvoiceInfo> GetInvoiceList(int uid)
        {
            List <InvoiceInfo> invoiceList = null;

            if (_usernosql != null)
            {
                invoiceList = _usernosql.GetInvoiceList(uid);
                if (invoiceList == null)
                {
                    invoiceList = new List <InvoiceInfo>();
                    IDataReader reader = NStore.Core.BMAData.RDBS.GetInvoiceList(uid);
                    while (reader.Read())
                    {
                        InvoiceInfo invoiceInfo = BuildInvoiceInfoFromReader(reader);
                        invoiceList.Add(invoiceInfo);
                    }
                    reader.Close();
                    _usernosql.CreateInvoiceList(uid, invoiceList);
                }
            }
            else
            {
                invoiceList = new List <InvoiceInfo>();
                IDataReader reader = NStore.Core.BMAData.RDBS.GetInvoiceList(uid);
                while (reader.Read())
                {
                    InvoiceInfo invoiceInfo = BuildInvoiceInfoFromReader(reader);
                    invoiceList.Add(invoiceInfo);
                }
                reader.Close();
            }

            return(invoiceList);
        }
示例#5
0
        public IHttpActionResult PutInvoiceInfo(int id, InvoiceInfo invoiceInfo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != invoiceInfo.InvID)
            {
                return(BadRequest());
            }

            db.Entry(invoiceInfo).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!InvoiceInfoExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
示例#6
0
 private async Task CreateProductsIfNotExistsAsync(InvoiceInfo info)
 {
     foreach (var line in info.Lines.Where(l => l.Type == InvoiceLineType.Product))
     {
         await CreateProductIfNotExistsAsync(line);
     }
 }
示例#7
0
        public async Task <InvoiceResult> CreateInvoiceAsync(InvoiceInfo info)
        {
            var customer = await GetOrCreateCustomer(info);

            var service = new StripeInvoiceItemService();

            foreach (var line in info.Lines.Where(l => l.Type == InvoiceLineType.Product))
            {
                await service.CreateAsync(new StripeInvoiceItemCreateOptions
                {
                    Amount      = (int)(line.Total ?? 0 * 100m), // inclusive of quantity & tax
                    Currency    = line.Currency,
                    CustomerId  = customer.Id,
                    Description = line.Description,
                });
            }

            var createInvoiceOptions = new StripeInvoiceCreateOptions
            {
                Billing      = StripeBilling.SendInvoice,
                DaysUntilDue = info.DueDate.HasValue
                    ? (info.DueDate.Value - SystemClock.Instance.Today()).Days
                    : 30,
                Description = string.Join(", ", info.Lines
                                          .Where(l => l.Type == InvoiceLineType.Text)
                                          .Select(l => l.Description))
            };
            var createInvoiceService = new StripeInvoiceService();
            var stripeInvoice        = await createInvoiceService.CreateAsync(customer.Id, createInvoiceOptions);

            return(new InvoiceResult(stripeInvoice.Id));
        }
示例#8
0
文件: Invoice.cs 项目: thfthf2/NStore
        /// <summary>
        /// 获得用户发票信息
        /// </summary>
        /// <param name="invoiceId">发票id</param>
        /// <param name="uid">用户id</param>
        /// <returns></returns>
        public static InvoiceInfo GetInvoicById(int invoiceId, int uid)
        {
            InvoiceInfo ivoiceInfo = null;

            if (_usernosql != null)
            {
                foreach (InvoiceInfo tempivoiceInfo in GetInvoiceList(uid))
                {
                    if (tempivoiceInfo.InvoiceId == invoiceId)
                    {
                        ivoiceInfo = tempivoiceInfo;
                        break;
                    }
                }
            }
            else
            {
                IDataReader reader = NStore.Core.BMAData.RDBS.GetInvoicById(invoiceId);
                if (reader.Read())
                {
                    ivoiceInfo = BuildInvoiceInfoFromReader(reader);
                }
                reader.Close();
            }

            return(ivoiceInfo);
        }
示例#9
0
        public static async Task <bool> SaveLocal(InvoiceInfo invoice)
        {
            try
            {
                using (var conn = Connect())
                {
                    conn.CreateTable <InvoiceInfo>();
                    var savedInvoiceInfo = conn.Table <InvoiceInfo>().Where(it => it.Id == invoice.Id).FirstOrDefault();
                    if (savedInvoiceInfo == null)
                    {
                        conn.Insert(invoice);
                    }
                    else
                    {
                        conn.Update(invoice);
                    }
                }
            }
            catch (Exception e)
            {
                return(false);
            }

            return(true);
        }
示例#10
0
        /// <summary>
        /// Creates a new invoice at Moyasar and returns an <code>Invoice</code> instance for it
        /// </summary>
        /// <param name="info">Information needed to create a new invoice</param>
        /// <returns><code>Invoice</code> instance representing an invoice created at Moyasar</returns>
        /// <exception cref="ApiException">Thrown when an exception occurs at server</exception>
        /// <exception cref="NetworkException">Thrown when server is unreachable</exception>
        public static Invoice Create(InvoiceInfo info)
        {
            info.Validate();
            var response = MoyasarService.SendRequest("POST", GetCreateUrl(), info);

            return(DeserializeInvoice(response));
        }
示例#11
0
        public bool SubmitOrderInvoiceInfo(InvoiceInfoModel invoiceInfoModel, int orderId)
        {
            try
            {
                InvoiceInfo invoiceInfo = new InvoiceInfo
                {
                    OrderId         = orderId,
                    CustomerEmail   = invoiceInfoModel.CustomerEmail,
                    Title           = invoiceInfoModel.Title,
                    TaxpayerID      = invoiceInfoModel.TaxpayerID,
                    RegisterAddress = invoiceInfoModel.RegisterAddress,
                    RegisterTel     = invoiceInfoModel.RegisterTel,
                    BankAccount     = invoiceInfoModel.BankAccount,
                    BankOfDeposit   = invoiceInfoModel.BankOfDeposit,
                    CreatedBy       = _workContext.CurrentUser.Id
                };

                _omsAccessor.Insert(invoiceInfo);
                _omsAccessor.SaveChanges();
                return(true);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
示例#12
0
        public static async Task <bool> Save(InvoiceInfo invoice)
        {
            var success = false;

            using (HttpClient client = new HttpClient())
            {
                try
                {
                    var url           = ApiConfiguration.PostInvoiceUrl;
                    var json          = JsonConvert.SerializeObject(invoice);
                    var stringContent = new StringContent(json, UnicodeEncoding.UTF8, "application/json");

                    var response = client.PostAsync(url, stringContent).Result;
                    if (response != null && response.IsSuccessStatusCode)
                    {
                        var contents = response.Content.ReadAsStringAsync().Result;
                        success = JsonConvert.DeserializeObject <bool>(contents);
                    }
                }
                catch (Exception e)
                {
                }
            }

            return(success);
        }
示例#13
0
        private InvoiceInfo MapInvoiceToInvoiceInfo(Invoice invoice)
        {
            var invoiceforreturn = new InvoiceInfo();

            invoiceforreturn.Id           = invoice.Id;
            invoiceforreturn.StoreName    = invoice.Store.Name;
            invoiceforreturn.NetPrice     = invoice.NetPrice;
            invoiceforreturn.TotalPrice   = invoice.TotalPrice;
            invoiceforreturn.Code         = invoice.Code;
            invoiceforreturn.CreatedBy    = invoice.CreatedBy.UserName;
            invoiceforreturn.CreatedById  = invoice.CreatedBy.Id;
            invoiceforreturn.CreationDate = invoice.CreationDate;
            for (var i = 0; i < invoice.InvoiceLines.Count; i++)
            {
                var temp = invoice.InvoiceLines.ToList()[i];
                var invoiceInfoLineTemp = new InvoiceInfoLine();
                invoiceInfoLineTemp.Id         = temp.Id;
                invoiceInfoLineTemp.ItemCode   = temp.Item.Code;
                invoiceInfoLineTemp.ItemName   = temp.Item.Name;
                invoiceInfoLineTemp.ItemId     = temp.Item.Id;
                invoiceInfoLineTemp.NetPrice   = temp.NetPrice;
                invoiceInfoLineTemp.UnitPrice  = temp.UnitPrice;
                invoiceInfoLineTemp.Quantity   = temp.Quantity;
                invoiceInfoLineTemp.TotalPrice = temp.TotalPrice;
                invoiceforreturn.InvoiceInfoLines.Add(invoiceInfoLineTemp);
            }
            return(invoiceforreturn);
        }
示例#14
0
        public static void UpdateHddtInfo(string ma_ct, string stt_rec, InvoiceInfo inv, int type)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.CommandText = "SELECT * FROM dmct where ma_ct=@ma_ct";
            cmd.Parameters.Add("@ma_ct", ma_ct);

            DataSet dsDmct = StartupBase.SysObj.ExcuteReader(cmd);

            if (dsDmct.Tables[0].Rows.Count > 0)
            {
                string vph = dsDmct.Tables[0].Rows[0]["v_phdbf"].ToString();
                string vct = dsDmct.Tables[0].Rows[0]["v_ctdbf"].ToString();
                string mph = dsDmct.Tables[0].Rows[0]["m_phdbf"].ToString();
                string mct = dsDmct.Tables[0].Rows[0]["m_ctdbf"].ToString();

                // + so_ct = số hóa đơn đt, ngay_ct = ngày hddt, ngay_lct = ngày hddt, ma_qs = mã qs ánh xạ của quyển hóa đơn tạm (ma_qs_tam)

                int so_ct_lenght = GetFieldLenght(mph, "so_ct");

                string sqlCmd = "Update " + mph + " set so_ct=dbo.PADL(@so_ct," + so_ct_lenght.ToString() + ",' '),ngay_ct=@ngay_ct,so_seri=@so_seri, ma_qs=@ma_qs where stt_rec=@stt_rec";

                SqlCommand cmd2 = new SqlCommand(sqlCmd);
                cmd2.Parameters.Add("@so_ct", inv.InvoiceNo);
                cmd2.Parameters.Add("@ngay_ct", inv.InvoiceDate);
                cmd2.Parameters.Add("@so_seri", inv.Serial);
                cmd2.Parameters.Add("@ma_qs", inv.MaQs_Hddt);
                cmd2.Parameters.Add("@stt_rec", stt_rec);
                StartupBase.SysObj.ExcuteNonQuery(cmd2);
            }
        }
示例#15
0
 /// <summary>
 /// 添加发票
 /// </summary>
 /// <param name="invoice">发票类</param>
 public void Insert(InvoiceInfo invoice)
 {
     if (invoice.SaleFilialeId == Guid.Empty)
     {
         return;
     }
     _invoiceDao.Insert(invoice);
 }
示例#16
0
文件: Invoice.cs 项目: thfthf2/NStore
 /// <summary>
 /// 更新用户发票信息
 /// </summary>
 public static void UpdateInvoic(InvoiceInfo invoiceInfo)
 {
     NStore.Core.BMAData.RDBS.UpdateInvoic(invoiceInfo);
     if (_usernosql != null)
     {
         _usernosql.DeleteInvoiceList(invoiceInfo.Uid);
     }
 }
示例#17
0
 private static void updateInvoice(SqlCommand cmd, InvoiceInfo Invoicedata)
 {
     cmd.Parameters.Clear();
     cmd.Parameters.AddWithValue("@Id", Invoicedata.id);
     cmd.CommandText = @"
    update arf25 set arf2505_buy_next_guino=(arf2505_buy_next_guino+1),arf2506_buy_last_date=getdate() where id=@Id";
     cmd.ExecuteNonQuery();
 }
示例#18
0
 public GeneratedFile GenerateInvoiceXml(string authToken, InvoiceInfo invoiceInfo, bool disableValidation = false)
 {
     if (invoiceInfo == null)
     {
         throw new ArgumentNullException("invoiceInfo");
     }
     return(diadocHttpApi.GenerateInvoiceXml(authToken, invoiceInfo, disableValidation));
 }
示例#19
0
 public Task <InvoiceResult> CreateInvoiceAsync(InvoiceInfo info)
 {
     LastInvoiceInfo = info;
     return(Task.FromResult(new InvoiceResult(Guid.NewGuid().ToString())
     {
         LogEntries = { TestLogEntry }
     }));
 }
示例#20
0
        public void InsertInvoice(InvoiceInfo invoiceInfo)
        {
            try
            {
                using (var context = new InventoryDbContext())
                {
                    var         tempTblClient = new TableClient();
                    TableClient tblClient     = new TableClient()
                    {
                        ClientID   = invoiceInfo.ClientID,
                        ClientName = invoiceInfo.ClientName,
                        Address    = invoiceInfo.Address,
                        ContactNo  = invoiceInfo.ContactNo,
                        TinNo      = invoiceInfo.TinNo
                    };
                    context.TblClient.Add(tblClient);
                    context.SaveChanges();

                    tempTblClient = tblClient;

                    if (tempTblClient != null)
                    {
                        foreach (var item in invoiceInfo.ClientItemList)
                        {
                            TableClientItem tblClientItem = new TableClientItem()
                            {
                                Quantity     = item.Quantity,
                                ItemNo       = item.ItemNo,
                                Description  = item.Description,
                                UnitPrice    = item.UnitPrice,
                                Discount     = item.Discount,
                                ClientBaseID = tempTblClient.ClientBaseID
                            };
                            context.TblClientItem.Add(tblClientItem);
                            context.SaveChanges();
                        }

                        TableInvoice tblInvoice = new TableInvoice()
                        {
                            InvoiceDate   = invoiceInfo.InvoiceDate,
                            ClientBaseID  = tempTblClient.ClientBaseID,
                            DueDate       = invoiceInfo.DueDate,
                            InvoicePeriod = invoiceInfo.InvoicePeriod,
                            AccountName   = invoiceInfo.AccountName,
                            USDAccountNo  = invoiceInfo.USDAccountNo,
                            BankName      = invoiceInfo.BankName,
                            BankAddress   = invoiceInfo.BankAddress,
                            SwiftCode     = invoiceInfo.SwiftCode
                        };
                        context.TblInvoice.Add(tblInvoice);
                        context.SaveChanges();
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
示例#21
0
文件: Invoice.cs 项目: thfthf2/NStore
        /// <summary>
        /// 创建用户发票信息
        /// </summary>
        public static int CreateInvoice(InvoiceInfo invoiceInfo)
        {
            int invoiceId = NStore.Core.BMAData.RDBS.CreateInvoice(invoiceInfo);

            if (_usernosql != null)
            {
                _usernosql.DeleteInvoiceList(invoiceInfo.Uid);
            }
            return(invoiceId);
        }
示例#22
0
        public ActionResult InvoicePdf()
        {
            //InvoiceInfo model = (InvoiceInfo)TempData["invoiceData"];
            InvoiceInfo model = (InvoiceInfo)Session["invoiceData"];
            var         date  = String.Format("{0:yyyymmdd}", DateTime.Now);

            return(new PdfActionResult(model)
            {
                FileDownloadName = date + "AndersonInvoice.pdf"
            });
        }
示例#23
0
        public void GetInvoiceInfoTest()
        {
            string    filePath = Path.Combine(Directory.GetCurrentDirectory(), "Files", "test.ofd");
            OfdReader reader   = new OfdReader(filePath);

            Assert.IsNotNull(reader);
            InvoiceInfo invoiceInfo = reader.GetInvoiceInfo();

            Assert.IsNotNull(invoiceInfo);
            Console.WriteLine(DateTime.Parse(invoiceInfo.IssueDate));
            Assert.AreEqual(9709m, decimal.Parse(invoiceInfo.TaxExclusiveTotalAmount));
        }
示例#24
0
        public IHttpActionResult PostInvoiceInfo(InvoiceInfo invoiceInfo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.InvoiceInfoes.Add(invoiceInfo);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = invoiceInfo.InvID }, invoiceInfo));
        }
示例#25
0
        /// <summary>
        /// 补开发票
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BarButtonItem4_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            string s_fa002   = string.Empty;
            string s_fa001   = string.Empty;
            int    rowHandle = gridView1.FocusedRowHandle;

            if (rowHandle >= 0)
            {
                s_fa002 = gridView1.GetRowCellValue(rowHandle, "FA002").ToString();
                s_fa001 = gridView1.GetRowCellValue(rowHandle, "FA001").ToString();

                if (PrtServAction.IsInvoiced(s_fa001))
                {
                    MessageBox.Show("当前记录已开税务发票!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                if (!Envior.canInvoice)
                {
                    MessageBox.Show("当前用户没有打印发票权限!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
                if (!Envior.TAX_READY)
                {
                    MessageBox.Show("金税卡没有打开!", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }



                Frm_taxClientInfo frm_client = new Frm_taxClientInfo();

                frm_client.swapdata["parent"] = this;
                frm_client.swapdata["title"]  = gridView1.GetRowCellValue(rowHandle, "FA003").ToString();

                if (frm_client.ShowDialog(this) == DialogResult.OK)
                {
                    InvoiceInfo invClient = Envior.mform.swapdata["clientinfo"] as InvoiceInfo;

                    //if (s_fa002.Equals("0") || s_fa002.Equals("1"))  //火化收费 or 临时性销售
                    //{
                    //	PrtServAction.Print_Fireinvoice(s_fa001, invClient, Envior.mform.Handle.ToInt32());
                    //}else if (s_fa002.Equals("2"))					 //寄存收费
                    //{
                    //	PrtServAction.Print_RegisterInvoice(s_fa001, invClient, Envior.mform.Handle.ToInt32());
                    //}
                    PrtServAction.Print_Invoice(s_fa001, invClient);
                }
                frm_client.Dispose();
                this.RefreshData();
            }
        }
        private void GenerateInvoice(Application application, EInvoicePurpose invoicePurpose)
        {
            var feeName         = application.PaymentSchedule.ToString();
            var feeScheduleItem = _context.FeeSchedule.First(x => x.ApplicationTypeName == feeName);
            int numberOfUnits   = (application.ProjectInfo is IUnitCount)
                ? ((IUnitCount)application.ProjectInfo).UnitCount
                : 0;
            float fee = feeScheduleItem.CalculateProcessingFee(numberOfUnits);

            if (invoicePurpose == EInvoicePurpose.IncompleteFee)
            {
                fee = EFeeSchedule.INCOMPLETE_FEE;
            }
            else if (invoicePurpose == EInvoicePurpose.MapReviewFee)
            {
                fee = feeScheduleItem.CalculateMapReviewFee(numberOfUnits);
            }

            // We forgive fees less than a nickle I guess. CCSF can bill James Ryan the damages ^_^
            if (Math.Abs(fee) < .05f)
            {
                return; // Don't generate an invoice.
            }
            var invoiceEnvelope = ApplicationToInvoice(fee, application);
            var invoice         = new CreateInvoiceXml(PaymentGatewaySoapHelper.CallWebService(invoiceEnvelope));
            var invoiceRead     =
                new ReadInvoiceXml(PaymentGatewaySoapHelper.CallWebService(new ReadInvoiceEnvelope(invoice.Id)));

            InvoiceInfo finalInvoice = new InvoiceInfo()
            {
                InvoiceNo      = invoice.Id,
                PayUrl         = invoice.Payurl,
                PrintUrl       = invoice.Printurl,
                Created        = invoiceRead.Created,
                Paid           = invoiceRead.IsPaid,
                Void           = invoiceRead.Voided,
                Amount         = fee.ToString("c2"),
                InvoicePurpose = invoicePurpose
            };

            var paymentForm = new PaymentForm();

            application.Forms.Add(paymentForm);
            _context.SaveChanges();
            finalInvoice.PaymentForm   = paymentForm;
            finalInvoice.PaymentFormId = paymentForm.Id;
            _context.Invoices.Add(finalInvoice);
            _context.SaveChanges();

            paymentForm.InvoiceId = finalInvoice.Id;
            paymentForm.Invoice   = finalInvoice;
        }
示例#27
0
        public bool SaveInvoiceInfo(InvoiceInfo invoiceInfo, int tmp)
        {
            int r = -1;

            if (tmp == 1)
            {
                r = this.invoiceInfo.AddInvoiceInfo(invoiceInfo);
            }
            else if (tmp == 2)
            {
            }

            return(r > 0);
        }
示例#28
0
        public IHttpActionResult DeleteInvoiceInfo(int id)
        {
            InvoiceInfo invoiceInfo = db.InvoiceInfoes.Find(id);

            if (invoiceInfo == null)
            {
                return(NotFound());
            }

            db.InvoiceInfoes.Remove(invoiceInfo);
            db.SaveChanges();

            return(Ok(invoiceInfo));
        }
示例#29
0
        public ResponeBaseGenneric <ViewInvoiceData> GetViewInvoice(string stt_rec, string pattern)
        {
            InvoiceInfo ii = new InvoiceInfo();

            ii.InvState = InvoiceState.NaN;
            //api/publish/viewInvoice
            Hashtable ht = new Hashtable();

            ht.Add("Ikey", stt_rec);
            ht.Add("Pattern", pattern);
            string json    = Newtonsoft.Json.JsonConvert.SerializeObject(ht);
            string respone = Post2Server("api/publish/viewInvoice", SMethod.POST, json);

            return(Newtonsoft.Json.JsonConvert.DeserializeObject <ResponeBaseGenneric <ViewInvoiceData> >(respone));
        }
示例#30
0
        public static byte[] GetZipFile(InvoiceInfo invoice)
        {
            byte[] bytes = invoice.Invoices.CreateBytes();

            byte[] zipFileBinaryDataArray = null;
            using (MemoryStream memoryStreamOutput = new MemoryStream())
            {
                using (ZipFile zip = new ZipFile())
                {
                    zip.AddEntry(invoice.Invoices.UUID.Value + ".XML", bytes);
                    zip.Save(memoryStreamOutput);
                }
                zipFileBinaryDataArray = memoryStreamOutput.ToArray();
            }
            return(zipFileBinaryDataArray);
        }
示例#31
0
        public void invoces(
            string crmId, string acctId, 
            string listType, string dateFrom, string dateTo, string limit,
            string callAppl, string auth,
            out int rc, out string msg,
            out int resultSize, out string resultLabel, out InvoiceInfo[] invoiceList
        )
        {
            log.Info(string.Format("invocesList begin, crmId={0}, acctId={1}, dateFrom={2}, dateTo={3}, limit={4}, callAppl={5}", crmId, acctId, dateFrom, dateTo, limit, callAppl));

            rc = 0;
            msg = null;
            resultSize = 0;
            resultLabel = null;
            invoiceList = null;

            SelectMode selMode;

            // jake faktury vybrat
            switch (listType)
            {
                case "A":
                    selMode = SelectMode.ALL;
                    break;

                case "D":
                    selMode = SelectMode.DEBT;
                    break;

                case "P":
                    selMode = SelectMode.PAY;
                    break;

                default:
                    if (! isEmpty(listType))
                    {
                        rc = -1;
                        msg = "invalid select mode";
                        return;
                    }
                    selMode = SelectMode.ALL;
                    break;
            }

            // omezeni na datumy
            string filterFrom = isEmpty(dateFrom) ? null : dateFrom;
            string filterTo   = isEmpty(dateTo) ? null : dateTo;

            // kolik jich vybrat
            int limitCount = -1;
            if ( ! isEmpty (limit))
            {
                limitCount = Convert.ToInt32(limit);
            }

            // nepripustna kombinace filtru
            if ( (limitCount >=0) && ((filterFrom != null) || (filterTo != null)) )
            {
                rc = -2;
                msg = "filter combinations";
                return;
            }

            string connStr = getConnectionString();

            try
            {
                using (OracleConnection objConn = new OracleConnection(connStr))
                {
                    objConn.Open();
                    OracleTransaction transaction;

                    OracleCommand objCmd = new OracleCommand(schemaPrefixMain + "crmws_functions.get_customer_invoces", objConn);
                    objCmd.CommandType = CommandType.StoredProcedure;
                    transaction = objConn.BeginTransaction();

                    try
                    {
                        objCmd.Transaction = transaction;

                        objCmd.Parameters.Clear();
                        objCmd.Parameters.Add("p_acct_id", OracleType.Number).Value = dbNlv(acctId);
                        objCmd.Parameters.Add("p_crm_id", OracleType.VarChar).Value = dbNlv(crmId);
                        objCmd.Parameters.Add("p_xml_txt", OracleType.Clob).Direction = ParameterDirection.Output;
                        objCmd.Parameters.Add("p_debt", OracleType.Number).Direction = ParameterDirection.Output;
                        objCmd.Parameters.Add("p_rc", OracleType.Number).Direction = ParameterDirection.Output;
                        objCmd.Parameters.Add("p_msg", OracleType.VarChar, 500).Direction = ParameterDirection.Output;

                        objCmd.ExecuteNonQuery();

                        rc = Convert.ToInt32(objCmd.Parameters["p_rc"].Value);
                        msg = objCmd.Parameters["p_msg"].Value.ToString();

                        // povedlo se, precteme si data
                        if (rc == 0)
                        {
                            int debt = Convert.ToInt32(objCmd.Parameters["p_debt"].Value);
                            OracleLob orc = (OracleLob)objCmd.Parameters["p_xml_txt"].Value;
                            string xmlTxt = orc.Value.ToString();

                            // sichr prazdne XML je treba nahradit NULLem, jinak se to nenabinduje
                            if ((xmlTxt != null) && (xmlTxt.Length == 0))
                            {
                                xmlTxt = null;
                            }

                            System.IO.StringReader sReader = new System.IO.StringReader(xmlTxt);
                            System.Data.DataSet dSet = new DataSet();
                            dSet.ReadXml(sReader);

                            if ((dSet.Tables != null) && (dSet.Tables.Count > 0))
                            {
                                DataTable dt = dSet.Tables[0];

                                List<InvoiceInfo> lst = new List<InvoiceInfo>();
                                bool showIt;

                                // omezeni na pocet ve vystupu
                                int fromIdx = -1;
                                if (limitCount > 0)
                                {
                                    fromIdx = dt.Rows.Count - limitCount;
                                }

                                for (int i = 0; i < dt.Rows.Count; i++)
                                {
                                    object[] row = dt.Rows[i].ItemArray;
                                    InvoiceInfo item = new InvoiceInfo();

                                    // nakopirivat to
                                    item.billNbr = Convert.ToString(row[dt.Columns.IndexOf("nbr")]);
                                    decimal amount = Convert.ToDecimal(row[dt.Columns.IndexOf("due")]);
                                    decimal debtAmount = Convert.ToDecimal(row[dt.Columns.IndexOf("debt")]);
                                    item.invoiceDate = Convert.ToString(row[dt.Columns.IndexOf("bill_date")]);
                                    item.dueDate = Convert.ToString(row[dt.Columns.IndexOf("debt_date")]);

                                    // jestli ho tam davat
                                    showIt = true;
                                    int invDebt = Convert.ToInt32(item.debtAmount);
                                    if (
                                         ((debtAmount != 0) && (selMode == SelectMode.PAY )) ||
                                         ((debtAmount == 0) && (selMode == SelectMode.DEBT))
                                    )
                                    {
                                        showIt = false;
                                    }

                                    // pripadne omezeni na pocet faktur
                                    if (showIt && (fromIdx >= 0) && (i < fromIdx))
                                    {
                                        showIt = false;
                                    }

                                    // pripadne omezeni na datum
                                    if (showIt && (filterFrom != null) && (filterFrom.CompareTo(item.invoiceDate) > 0))
                                    {
                                        showIt = false;
                                    }

                                    if (showIt && (filterTo != null) && (filterTo.CompareTo(item.invoiceDate) < 0))
                                    {
                                        showIt = false;
                                    }

                                    // prevest z haliru na koruny
                                    amount      = amount / 100;
                                    debtAmount  = debtAmount / 100;

                                    // prevest na string do vystupu
                                    item.amount = amount.ToString("F", CultureInfo.InvariantCulture);
                                    item.debtAmount = debtAmount.ToString("F", CultureInfo.InvariantCulture);

                                    if (showIt)
                                    {
                                        lst.Add(item);
                                    }
                                }

                                // otocime to, aby byly nejcerstvejsi nahore
                                lst.Reverse();

                                invoiceList = lst.ToArray();
                                resultSize = lst.Count;

                                resultLabel = null;

                                // sestavit popis kolekce dle zadani
                                if (selMode == SelectMode.DEBT)
                                {
                                    decimal debtTotal = 0;
                                    int invCount = 0;
                                    List<string> nbrList = new List<string> ();
                                    foreach (InvoiceInfo inv in invoiceList)
                                    {
                                        debtTotal = debtTotal + Convert.ToDecimal(inv.debtAmount);
                                        invCount++;
                                        nbrList.Add(inv.billNbr);
                                    }

                                    string nbrs = string.Join(", ", nbrList.ToArray());

                                    // cislovky a cstina
                                    string txtLng = "nezaplacených faktur";
                                    if (invCount == 1) txtLng = "nezaplacená faktura";
                                    if ((invCount >= 2) && (invCount <= 4)) txtLng = "nezaplacené faktury";

                                    resultLabel = string.Format("{0} {1} ve výši celkem {2} Kè ({3})", invCount, txtLng, debtTotal, nbrs);
                                }
                            }

                        }

                        transaction.Commit();
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        log.Error(e);
                        rc = -2;
                        msg = "fail:" + e.Message;
                    }

                    finally
                    {
                        objConn.Close();
                    }
                }
            }
            catch (Exception e)
            {
                rc = -3;
                log.Error(e);
            }

            log.Info(string.Format("invocesList end, rc={0},msg={1}", rc, msg));
        }