示例#1
0
        public static string VoucherCodeGenerate(EmVoucherType type, string voucherCode, DateTime voucherDate, int companyId)
        {
            string serialNo = GetVoucherSerialByMonth(type, voucherDate);
            string company  = null;

            using (var _db = new ERP_Entities())
            {
                company = (from r in _db.CmnCompanies
                           where r.CompanyID == companyId
                           select r.CompanyShortName).SingleOrDefault();
            }


            string pvCode = null;

            try
            {
                var    dt    = voucherDate;
                string yy    = dt.ToString("yy");
                string month = dt.ToString("MM");
                string date  = month + "-" + yy;

                if (serialNo != null && serialNo.Length == 1)
                {
                    pvCode = company.Trim() + "-" + voucherCode + "-" + date + "-000" + serialNo;
                }

                if (serialNo != null && serialNo.Length == 2)
                {
                    pvCode = company.Trim() + "-" + voucherCode + "-" + date + "-00" + serialNo;
                }

                if (serialNo != null && serialNo.Length == 3)
                {
                    pvCode = company.Trim() + "-" + voucherCode + "-" + date + "-0" + serialNo;
                }
                if (serialNo != null && serialNo.Length == 4)
                {
                    pvCode = company.Trim() + "-" + voucherCode + "-" + date + "-" + serialNo;
                }
            }
            catch (Exception)
            {
            }

            return(pvCode);
        }
示例#2
0
        public string VoucherEdit(int userId, EmVoucherType type, string voucherCode)
        {
            try
            {
                if (VoucherDetails == null)
                {
                    return("Please Provide Cash Payment Voucher Detail Information");
                }

                if (TotalDebitAmount != TotalCreditAmount)
                {
                    return("Total Debit Amount and Credit Amount must be Equal");
                }

                if (TotalDebitAmount == 0 && TotalCreditAmount == 0)
                {
                    return("Total Debit Amount and Credit Amount Zero (0) Not Allow");
                }


                using (var _db = new ERP_Entities())
                {
                    var oldVm = _db.AccVoucherMasters.SingleOrDefault(r => r.Id == Id);

                    if (oldVm == null)
                    {
                        return("Voucher not found for existing voucher no!");
                    }
                    _db.Database.ExecuteSqlCommand("exec VoucherHistoryInsert {0}", oldVm.Id);

                    oldVm.Narration     = Narration;
                    oldVm.PaymentTo     = PaymentTo;
                    oldVm.UpdatedDate   = DateTime.Now;
                    oldVm.VoucherTypeId = (int)type;
                    if (type == EmVoucherType.BankVoucher)
                    {
                        oldVm.ChequeNo   = ChequeNo;
                        oldVm.ChequeDate = UniqueCode.GetDateFormat_MM_dd_yyy(ChequeDateStr);
                    }
                    var newDate = UniqueCode.GetDateFormat_MM_dd_yyy(VoucherDateStr);
                    if (newDate != oldVm.VoucherDate)
                    {
                        oldVm.VoucherDate = newDate;

                        oldVm.VoucherNo = UniqueCode.VoucherCodeGenerate(type, voucherCode, oldVm.VoucherDate, oldVm.CompanyId);
                        oldVm.SerialNo  = Convert.ToInt32(UniqueCode.GetVoucherSerialByMonth(type, oldVm.VoucherDate));
                    }


                    var oldVd = _db.AccVoucherDetails.Where(p => p.VMasterId == Id);
                    _db.AccVoucherDetails.RemoveRange(oldVd);

                    foreach (var vDetail in VoucherDetails)
                    {
                        if (vDetail.CostCenterId != 0 && vDetail.AC5Id != 0)
                        {
                            if ((vDetail.DebitAmount == 0) && (vDetail.CreditAmount == 0))
                            {
                                return("Please provide at lest one amount(Debit or Credit)");
                            }
                            vDetail.TransactionType = vDetail.DebitAmount != 0 ? "Debit" : "Credit";
                            vDetail.VoucherNo       = oldVm.VoucherNo;
                            vDetail.VMasterId       = oldVm.Id;
                            vDetail.IsActive        = true;

                            _db.AccVoucherDetails.Add(vDetail.VoucherDetailEntity());
                        }
                        else
                        {
                            return("Provide LedgerInfo and CostCenter in all field");
                        }
                    }

                    _db.Entry(oldVm).State = EntityState.Modified;

                    _db.SaveChanges();
                } // end using

                return("ok");
            }
            catch
            {
                return("Please provide all information");
            }
        }
示例#3
0
        public static string GetVoucherSerialByMonth(EmVoucherType type, DateTime voucherDate)
        {
            string id = null;

            try
            {
                switch (type)
                {
                case EmVoucherType.CashVoucherHeadOffice:
                    using (var db = new ERP_Entities())
                    {
                        var data =
                            db.AccVoucherMasters.Where(
                                r =>
                                r.VoucherTypeId == 1 && r.VoucherDate.Year == voucherDate.Year &&
                                r.VoucherDate.Month == voucherDate.Month).ToList();
                        id = data.Max(r => Convert.ToInt32(r.SerialNo) + 1).ToString();
                    }
                    break;

                case EmVoucherType.BankVoucher:
                    using (var db = new ERP_Entities())
                    {
                        var data =
                            db.AccVoucherMasters.Where(
                                r =>
                                r.VoucherTypeId == 2 && r.VoucherDate.Year == voucherDate.Year &&
                                r.VoucherDate.Month == voucherDate.Month).ToList();
                        id = data.Max(r => Convert.ToInt32(r.SerialNo) + 1).ToString();
                    }
                    break;

                case EmVoucherType.ReceiptVoucher:
                    using (var db = new ERP_Entities())
                    {
                        var data =
                            db.AccVoucherMasters.Where(
                                r =>
                                r.VoucherTypeId == 3 && r.VoucherDate.Year == voucherDate.Year &&
                                r.VoucherDate.Month == voucherDate.Month).ToList();
                        id = data.Max(r => Convert.ToInt32(r.SerialNo) + 1).ToString();
                    }
                    break;

                case EmVoucherType.ContraVoucher:
                    using (var db = new ERP_Entities())
                    {
                        var data =
                            db.AccVoucherMasters.Where(
                                r =>
                                r.VoucherTypeId == 4 && r.VoucherDate.Year == voucherDate.Year &&
                                r.VoucherDate.Month == voucherDate.Month).ToList();
                        id = data.Max(r => Convert.ToInt32(r.SerialNo) + 1).ToString();
                    }
                    break;

                case EmVoucherType.JournalVoucher:
                    using (var db = new ERP_Entities())
                    {
                        var data =
                            db.AccVoucherMasters.Where(
                                r =>
                                r.VoucherTypeId == 5 && r.VoucherDate.Year == voucherDate.Year &&
                                r.VoucherDate.Month == voucherDate.Month).ToList();
                        id = data.Max(r => Convert.ToInt32(r.SerialNo) + 1).ToString();
                    }
                    break;

                case EmVoucherType.CashVoucherFactory:
                    using (var db = new ERP_Entities())
                    {
                        var data =
                            db.AccVoucherMasters.Where(
                                r =>
                                r.VoucherTypeId == 6 && r.VoucherDate.Year == voucherDate.Year &&
                                r.VoucherDate.Month == voucherDate.Month).ToList();
                        id = data.Max(r => Convert.ToInt32(r.SerialNo) + 1).ToString();
                    }
                    break;

                default:
                    id = "1";
                    break;
                }
            }

            catch (Exception)
            {
                id = "1";
            }
            return(id);
        }
示例#4
0
        public string VoucherSave(int userId, EmVoucherType type, string voucherCode)
        {
            try
            {
                if (VoucherDetails == null)
                {
                    return("Please Provide Cash Payment Voucher Detail Information");
                }

                if (TotalDebitAmount != TotalCreditAmount)
                {
                    return("Total Debit Amount and Credit Amount must be Equal");
                }

                if (TotalDebitAmount == 0 && TotalCreditAmount == 0)
                {
                    return("Total Debit Amount and Credit Amount Zero (0) Not Allow");
                }

                Id          = Convert.ToInt32(UniqueCode.GetAutoNumber("voucher"));
                CreatedBy   = userId;
                CreatedDate = DateTime.Now;
                UpdatedBy   = userId;
                UpdatedDate = DateTime.Now;
                VoucherDate = UniqueCode.GetDateFormat_MM_dd_yyy(VoucherDateStr);
                VoucherNo   = UniqueCode.VoucherCodeGenerate(type, voucherCode, VoucherDate, CompanyId);
                SerialNo    = Convert.ToInt32(UniqueCode.GetVoucherSerialByMonth(type, VoucherDate));
                if (type == EmVoucherType.BankVoucher)
                {
                    ChequeDate  = UniqueCode.GetDateFormat_MM_dd_yyy(ChequeDateStr);
                    CreatedDate = DateTime.Now;
                }

                VoucherTypeId = (int)type;
                IsActive      = true;

                foreach (var vDetail in VoucherDetails)
                {
                    if (vDetail.CostCenterId != 0 && vDetail.AC5Id != 0)
                    {
                        if ((vDetail.DebitAmount == 0) && (vDetail.CreditAmount == 0))
                        {
                            return("Please provide at lest one amount(Debit or Credit)");
                        }


                        vDetail.TransactionType = vDetail.DebitAmount != 0 ? "Debit" : "Credit";
                        vDetail.VoucherNo       = VoucherNo;
                        vDetail.VMasterId       = Id;
                        vDetail.IsActive        = true;

                        //cpv.VoucherDetails.Add(vDetail);
                        AccVoucherDetails.Add(vDetail.VoucherDetailEntity());
                    }
                    else
                    {
                        return("Provide LedgerInfo and CostCenter in all field");
                    }
                }
                AccVoucherMaster voucherMaster = VoucherMasterEntity();
                using (var _db = new ERP_Entities())
                {
                    _db.AccVoucherDetails.AddRange(AccVoucherDetails);

                    _db.AccVoucherMasters.Add(voucherMaster);

                    _db.SaveChanges();
                }

                return("ok");
            }
            catch
            {
                return("Please provide all information");
            }
        }