예제 #1
0
        private string getVatCode(clsTaxHandling objTax, String strBType)
        {
            String       strRet       = objTax.DefaultSalesCode;
            clsAppConfig objAppConfig = new clsAppConfig();
            String       strTmp       = objAppConfig.getStringParam("VLASKUTYY", strBType, "C5", "");

            if (strTmp.Contains("V"))
            {
                strRet = "0";
            }
            return(strRet);
        }
예제 #2
0
        private bool invoiceContract(Contract objContract, bool bDraft, bool bManual, String Payer, int InvoiceSeqNr, bool bCapital)
        {
            bool              bRet         = true;
            clsAppConfig      objAppConfig = new clsAppConfig();
            clsGlobalVariable objGlobal    = new clsGlobalVariable();
            SCInvoice         objInv       = new SCInvoice();
            clsSqlFactory     hSql         = new clsSqlFactory();

            objInv.InvoiceSeqNr = InvoiceSeqNr;

            if (Payer == "")
            {
                if (objContract.InvoiceCustId != null)
                {
                    objInv.CustNo = objContract.InvoiceCustId.CustNr;
                }
                else
                {
                    objInv.CustNo = objContract.ContractCustId.CustNr;
                }
            }
            else
            {
                objInv.CustNo = objAppConfig.getNumberParam("ZSCCAPPAYE", Payer, "V1", "");
            }
            objInv.DCustNo     = objContract.ContractCustId.CustNr;
            objInv.UnitId      = objContract.InvoiceSiteId.strValue1;
            objInv.ContractOID = objContract.ContractOID;
            objInv.ExtOrderId  = objContract.ExtContractNo;
            if (objInv.ExtOrderId.Length > 10)
            {
                objInv.ExtOrderId = objInv.ExtOrderId.Substring(0, 10);
            }
            objInv.SalesType = objAppConfig.getStringParam("ZSCSETTING", "TRTYPE", "C3", "");
            objInv.SmanId    = objContract.RespSmanId.SmanId;

            objInv.TPCODE = objContract.ContractPaymentData.PaymentTerm.strValue1;
            objInv.TPTIME = objAppConfig.getNumberParam("MAKSUEHDOT", objInv.TPCODE, "V1", "");
            if (objContract.CostCenter.strValue1 != "")
            {
                hSql.NewCommand("select isnull(a.C4,'') from CORW a where a.CODAID='ZSCCOSTCC' and a.C3=? and a.C5=? ");
                hSql.Com.Parameters.Add("UNITID", objContract.SiteId.strValue1);
                hSql.Com.Parameters.Add("COSTCENTER", objContract.CostCenter.strValue1);
                hSql.ExecuteReader();
                if (hSql.Read())
                {
                    objInv.DeptId = hSql.Reader.GetString(0);
                }
            }

            objInv.Payer   = Payer;
            objInv.OUserId = objGlobal.DMSFirstUserName;
            objInv.VehiId  = objContract.VehiId.VehiId;
            objInv.Note    = objContract.ContractNo.ToString() + "/" + objContract.VersionNo.ToString() + "/" + objInv.InvoiceSeqNr.ToString();

            hSql.NewCommand("select isnull(a.C4,''), isnull(a.C5,'') from CORW a, VEHI b where a.CODAID='ZSCCONV' and a.C2='VEHICLASS2BTYPE' and a.C3=b.CLASS and b.VEHIID=? ");
            hSql.Com.Parameters.Add("VEHIID", objContract.VehiId.VehiId);
            hSql.ExecuteReader();
            if (hSql.Read())
            {
                objInv.BTYPE       = hSql.Reader.GetString(0);
                objInv.PartPostFix = hSql.Reader.GetString(1);
            }
            if (objContract.ContractPaymentData.PaymentGroupingLevel == PaymentGroupingType.Customer)
            {
                objInv.BTYPE = "0";
            }
            else
            {
                if (objContract.PaymentCollecType == PaymentCollectionType.Transfer)
                {
                    objInv.BTYPE = objAppConfig.getStringParam("ZSCSETTING", "INVCAT4", "C3", "");
                }
                else if (objContract.PaymentCollecType == PaymentCollectionType.Debit)
                {
                    objInv.BTYPE = objAppConfig.getStringParam("ZSCSETTING", "INVCAT5", "C3", "");
                }
                else if (objContract.PaymentCollecType == PaymentCollectionType.Plain)
                {
                    objInv.BTYPE = objAppConfig.getStringParam("ZSCSETTING", "INVCAT6", "C3", "");
                }
                else
                {
                    if (bManual == true)
                    {
                        objInv.BTYPE = objAppConfig.getStringParam("ZSCSETTING", "INVCAT2", "C3", "");
                    }
                    else
                    {
                        objInv.BTYPE = objAppConfig.getStringParam("ZSCSETTING", "INVCAT1", "C3", "");
                    }
                }
            }
            if (Payer != "")
            {
                objInv.BTYPE = objAppConfig.getStringParam("ZSCCAPPAYE", Payer, "C3", "");
            }
            if (objContract.NextInvoiceDate == DateTime.MinValue)
            {
                objInv.BILLD = DateTime.Now;
            }
            else
            {
                objInv.BILLD = objContract.NextInvoiceDate;
            }
            int nInvoiceDay = objContract.ContractPaymentData.InvoiceDate;

            if (nInvoiceDay <= 0)
            {
                nInvoiceDay = objAppConfig.getNumberParam("ZSCSETTING", "INVDATE", "V1", "");
            }
            if (objInv.BILLD.Day > nInvoiceDay)
            {
                objInv.BILLD = new DateTime(objInv.BILLD.Year, objInv.BILLD.Month, nInvoiceDay);
                objInv.BILLD = objInv.BILLD.AddMonths(1);
            }
            else if (objInv.BILLD.Day < nInvoiceDay)
            {
                objInv.BILLD = new DateTime(objInv.BILLD.Year, objInv.BILLD.Month, nInvoiceDay);
            }
            objInv.CBILLD = new DateTime(objInv.BILLD.Year, objInv.BILLD.Month, objInv.BILLD.Day);

            switch (objContract.ContractPaymentData.PaymentPeriod.strValue1)
            {
            case PaymentPeriodType.Quarterly:
                objInv.NBILLD = objInv.CBILLD.AddMonths(3);
                break;

            case PaymentPeriodType.HalfYear:
                objInv.NBILLD = objInv.CBILLD.AddMonths(6);
                break;

            case PaymentPeriodType.Yearly:
                objInv.NBILLD = objInv.CBILLD.AddMonths(12);
                break;

            default:
                objInv.NBILLD = objInv.CBILLD.AddMonths(1);
                break;
            }
            objInv.DELD = objInv.BILLD;
            addInvoiceText(hSql, objContract, ref objInv);
            objContract.listContractOptions = ContractOption.getContractOption(objContract.ContractOID);
            //objContract.loadDetail();
            addInvoiceRows(objContract, ref objInv, bCapital);
            hSql.Close();
            bRet = objInv.saveOrder(bDraft);
            if ((bRet == true) && (bManual == true))
            {
                if (bDraft == true)
                {
                    openInvoice(objInv.UnitId, objInv.SSALID, objInv.SRECNO);
                }
                else
                {
                    openInvoicePDF(objInv.UnitId, objInv.SRECNO);
                }
            }
            return(bRet);
        }
예제 #3
0
        public bool closeCashBox(string strCashBoxId)
        {
            _log.Debug("closeCashBox >> " + strCashBoxId);
            bool          bRet         = true;
            clsSqlFactory hSql         = new clsSqlFactory();
            clsAppConfig  objAppConfig = new clsAppConfig();

            try
            {
                int     NUSEID     = objAppConfig.getNumberParam("CASHREG", "DEPRECNO", "V1", "");
                DataRow cashbox    = CashBoxes.Select(("CASHBOXID = '" + strCashBoxId + "'"))[0];
                int     EOD_NUSEID = Int32.Parse(cashbox["EODNUSEID"].ToString());

                hSql.NewCommand("select ISOPEN from " + objUtil.getTable("CASHBOX") + " where CASHBOXID=? and ISOPEN=1");
                hSql.Com.Parameters.AddWithValue("CASHBOXID", strCashBoxId);
                bRet = bRet && hSql.ExecuteReader();
                if (hSql.Read())
                {
                    hSql.NewCommand("update " + objUtil.getTable("NUSE") + " set RECNO=RECNO+1 where NUSEID=?");
                    hSql.Com.Parameters.AddWithValue("NUSEID", NUSEID);
                    bRet = bRet && hSql.ExecuteNonQuery();

                    hSql.NewCommand("select RECNO from " + objUtil.getTable("NUSE") + " where NUSEID=?");
                    hSql.Com.Parameters.AddWithValue("NUSEID", NUSEID);
                    bRet = bRet && hSql.ExecuteReader();
                    if (hSql.Read())
                    {
                        int RECEIPTNO = hSql.Reader.GetInt32(0);

                        //EOD_NUSEID
                        hSql.NewCommand("update " + objUtil.getTable("NUSE") + " set RECNO=RECNO+1 where NUSEID=?");
                        hSql.Com.Parameters.AddWithValue("NUSEID", EOD_NUSEID);
                        hSql.ExecuteNonQuery();

                        hSql.NewCommand("select RECNO from " + objUtil.getTable("NUSE") + " where NUSEID=?");
                        hSql.Com.Parameters.AddWithValue("NUSEID", EOD_NUSEID);
                        bRet = bRet && hSql.ExecuteReader();

                        if (hSql.Read())
                        {
                            int EOD_RECEIPTNO = hSql.Reader.GetInt32(0);
                            //
                            hSql.NewCommand("update " + objUtil.getTable("CASHBOX") + " set ISOPEN=0 where CASHBOXID=?");
                            hSql.Com.Parameters.AddWithValue("CASHBOXID", strCashBoxId);
                            hSql.ExecuteNonQuery();
                            hSql.NewCommand("insert into " + objUtil.getTable("CASHREG") + "(CASHBOXID,SMANID,EVENT,UPDATED_DATE,UPDATED_BY,RECEIPTNO,EOD_RECEIPTNO) values(?,?,'C',getdate(),?,?,?)");
                            hSql.Com.Parameters.AddWithValue("CASHBOXID", strCashBoxId);
                            hSql.Com.Parameters.AddWithValue("SMANID", objGlobal.DefaultSManID);
                            hSql.Com.Parameters.AddWithValue("UPDATED_BY", objGlobal.DMSFirstUserName);
                            hSql.Com.Parameters.AddWithValue("RECEIPTNO", RECEIPTNO);
                            hSql.Com.Parameters.AddWithValue("EOD_RECEIPTNO", EOD_RECEIPTNO);
                            hSql.ExecuteNonQuery();
                            hSql.Com.Parameters.Clear();
                            hSql.NewCommand("SELECT @@IDENTITY");
                            bRet = bRet && hSql.ExecuteReader();
                            hSql.Read();
                            int nCashRegRowId = hSql.Reader.GetInt32(0);

                            hSql.NewCommand("select top 1 isnull(b.AMOUNT,0),a.UPDATED_DATE, isnull(b.QTY,0) from " + objUtil.getTable("CASHREG") + " a," +
                                            " CASHREGROW b where a.ROWID = b.CASHREGROWID and a.CASHBOXID = ? and a.EVENT = 'O' " +
                                            " order by a.UPDATED_DATE desc");
                            hSql.Com.Parameters.AddWithValue("CASHBOXID", strCashBoxId);
                            bRet = bRet && hSql.ExecuteReader();
                            hSql.Read();

                            DateTime dtLastOpen      = hSql.Reader.GetDateTime(1);
                            decimal  nOpeningBalance = hSql.Reader.GetDecimal(0);

                            decimal nOpeningQty = hSql.Reader.GetDecimal(2);

                            hSql.NewCommand("insert into " + objUtil.getTable("CASHREGROW") + "(CASHREGROWID,ROWNO,CASHFORM,CASHTYPE,AMOUNT,QTY,UPDATED_DATE,UPDATED_BY) " +
                                            " select ?, row_number() over (partition by getdate() order by getdate()),CASHFORM,CASHTYPE,isnull(TOTAMOUNT,0),isnull(TOTQTY,0),getdate(),? from " +
                                            "(select b.CASHFORM,case b.CASHFORM when 'CASH' then '" + ConfigurationSettings.AppSettings["DefaultCashType"] + "' else b.CASHTYPE end as CASHTYPE,sum(b.AMOUNT) as TOTAMOUNT,sum(b.QTY) as TOTQTY from " + objUtil.getTable("CASHTRANSH") + " a, " + objUtil.getTable("CASHTRANSR") + " b" +
                                            " where a.CASHBOXID =? and a.RECEIPTNO = b.RECEIPTNO and a.UPDATED_DATE >=? " +
                                            " group by b.CASHFORM,case b.CASHFORM when 'CASH' then '" + ConfigurationSettings.AppSettings["DefaultCashType"] + "' else b.CASHTYPE end ) x");
                            hSql.Com.Parameters.AddWithValue("CASHREGROWID", nCashRegRowId);
                            hSql.Com.Parameters.AddWithValue("UPDATED_BY", objGlobal.DMSFirstUserName);

                            hSql.Com.Parameters.AddWithValue("CASHBOXID", strCashBoxId);
                            hSql.Com.Parameters.AddWithValue("LASTOPEN", dtLastOpen);

                            bRet = bRet && hSql.ExecuteNonQuery();

                            hSql.NewCommand("select 1 from " + objUtil.getTable("CASHREGROW") + " where CASHREGROWID=? and CASHFORM in ('CASH','CURRENCY')");
                            hSql.Com.Parameters.AddWithValue("CASHREGROWID", nCashRegRowId);
                            bRet = bRet && hSql.ExecuteReader();
                            if (hSql.Read())
                            {
                                hSql.NewCommand("update " + objUtil.getTable("CASHREGROW") + " set AMOUNT=AMOUNT+?, QTY=QTY+? where CASHREGROWID=? and CASHFORM in ('CASH','CURRENCY') ");
                                hSql.Com.Parameters.AddWithValue("OPENBALANCE", nOpeningBalance);
                                hSql.Com.Parameters.AddWithValue("OPENQTY", nOpeningQty);
                                hSql.Com.Parameters.AddWithValue("CASHREGROWID", nCashRegRowId);
                                bRet = bRet && hSql.ExecuteNonQuery();
                            }
                            else
                            {
                                hSql.NewCommand("insert into " + objUtil.getTable("CASHREGROW") + "(CASHREGROWID,ROWNO,CASHFORM,CASHTYPE,AMOUNT,QTY,UPDATED_DATE,UPDATED_BY) values(" +
                                                "  ?, (select isnull(max(ROWNO),0)+1 from CASHREGROW where CASHREGROWID=? ),'CASH',?,?,?,getdate(),? )");
                                hSql.Com.Parameters.AddWithValue("CASHREGROWID", nCashRegRowId);
                                hSql.Com.Parameters.AddWithValue("CASHREGROWID2", nCashRegRowId);
                                hSql.Com.Parameters.AddWithValue("CASHTYPE", ConfigurationSettings.AppSettings["DefaultCashType"]);

                                hSql.Com.Parameters.AddWithValue("AMOUNT", nOpeningBalance);
                                hSql.Com.Parameters.AddWithValue("QTY", nOpeningQty);

                                hSql.Com.Parameters.AddWithValue("UPDATED_BY", objGlobal.DMSFirstUserName);

                                hSql.Com.Parameters.AddWithValue("CASHBOXID", strCashBoxId);
                                bRet = bRet && hSql.ExecuteNonQuery();
                            }
                            //Update CASHTRANSH.EOD_RECEIPTNO

                            hSql.NewCommand("update " + objUtil.getTable("CASHTRANSH") + " set EOD_RECEIPTNO =? where CASHBOXID =? and EOD_RECEIPTNO is null and UPDATED_DATE >=?");
                            hSql.Com.Parameters.AddWithValue("EOD_RECEIPTNO", EOD_RECEIPTNO);
                            hSql.Com.Parameters.AddWithValue("CASHBOXID", strCashBoxId);
                            hSql.Com.Parameters.AddWithValue("LASTOPEN", dtLastOpen);
                            bRet = bRet && hSql.ExecuteNonQuery();
                            //
                            hSql.NewCommand("delete from " + objUtil.getTable("CASHBOXPC") + " where CASHBOXID = ?");
                            hSql.Com.Parameters.AddWithValue("CASHBOXID", strCashBoxId);
                            bRet = bRet && hSql.ExecuteNonQuery();
                        }
                        else
                        {
                            bRet = false;
                            throw new Exception("Invalid EODNUSEID (CASHBOXID.V3) ): " + NUSEID);
                        }
                    }
                    else
                    {
                        bRet = false;
                        throw new Exception("Invalid NUSEID (CASHREG.DEPRECNO): " + NUSEID);
                    }
                }
                else
                {
                    bRet = false;
                }
                if (bRet)
                {
                    hSql.Commit();
                }
                else
                {
                    hSql.Rollback();
                }
            }
            catch (Exception ex)
            {
                _log.Error(ex.ToString());
                hSql.Rollback();
                bRet = false;
                throw ex;
            }
            finally
            {
                hSql.Close();
            }
            _log.Debug("closeCashBox >> " + bRet.ToString());
            return(bRet);
        }