//------------------------------------
        //Obtiene NewID Documento Autogenerado
        //------------------------------------
        public string Get_NewID_Documento(BE_ReqGetDocumentoNewId Request)
        {
            string cDocCodigo = "";

            try
            {
                clsConection Obj    = new clsConection();
                string       Cadena = Obj.GetConexionString("Naylamp");

                using (SqlConnection cn = new SqlConnection(Cadena))
                {
                    cn.Open();

                    using (SqlCommand cm = new SqlCommand())
                    {
                        cm.CommandText = "[usp_Get_Documentos_NewID]";
                        cm.CommandType = CommandType.StoredProcedure;
                        cm.Parameters.AddWithValue("cPerJurCodigo", Request.cPerJurCodigo);

                        cm.Connection = cn;
                        using (SqlDataReader dr = cm.ExecuteReader())
                        {
                            while (dr.Read())
                            {
                                cDocCodigo = dr.GetString(dr.GetOrdinal("newcdoccodigo")).Trim();
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(cDocCodigo);
        }
Example #2
0
        public bool Ins_GenerandoAsientoVta(string cPerJurCodigo, string cPerCodigo, DateTime dAsiFecha, string cGlosa, string CtaX, string CtaIgv, string CtaSub, string CentroCosto, string cDocObserv, int nDocTipo = 3001, int nEstado = 3003, string cDocRefCodigo = "", string cDocNDoc = "", int nMoneda = 1, double fTC = 0, double fMonto = 0.0)
        {
            bool exito           = false;
            int  nOrigen         = 0;
            int  nUniOrgCodigo   = 0;
            int  nPrdCodigo      = 0;
            int  nAsiCorrelativo = 0;
            int  nAsiCodigo      = 0;

            string cDocCodigo = "";

            double nSubTotal = 0.0;
            double nIgv      = 0.0;

            try
            {
                using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required))
                {
                    DA_ConAsiento ObjAsiento = new DA_ConAsiento();

                    #region Obtener Origen Contable "Ventas"
                    //BE_ReqParametros ReqOrigen = new BE_ReqParametros();
                    //ReqOrigen.cPerJurCodigo = cPerJurCodigo;
                    //ReqOrigen.nIntTipo = 7002; //Origen
                    //ReqOrigen.cIntJerarquia = "402"; //Ventas
                    //nOrigen = ObjAsiento.usp_Get_Interface_nIntCodigo_by_cPerJurCodigo_and_nIntTipo_and_cIntJerarquia(ReqOrigen);

                    nOrigen = Get_nIntCodigo_Interface(cPerJurCodigo, 7002, "402");
                    #endregion

                    #region Obtener Codigo Unidad Organizacional
                    BE_ReqParametros ReqUniOrg = new BE_ReqParametros();
                    ReqUniOrg.cPerJurCodigo = cPerJurCodigo;
                    nUniOrgCodigo           = ObjAsiento.Get_UnidadOrganizacional_by_cPerJuridica(ReqUniOrg);
                    #endregion

                    #region Obtener Periodo Contable
                    BE_ReqParametros ReqPeriodo = new BE_ReqParametros();
                    ReqPeriodo.cPerJurCodigo = cPerJurCodigo;
                    nPrdCodigo = ObjAsiento.Get_Periodo_by_cPerJurCodigo(ReqPeriodo);
                    #endregion

                    #region Obtener nAsiCorrelativo by nUniOrgCodigo, nPrdCodigo y nOrigen
                    BE_ReqParametros ReqnAsiNumero = new BE_ReqParametros();
                    ReqnAsiNumero.nUniOrgCodigo = nUniOrgCodigo;
                    ReqnAsiNumero.nPrdCodigo    = nPrdCodigo;
                    ReqnAsiNumero.nOrigen       = nOrigen;

                    nAsiCorrelativo = ObjAsiento.Get_nAsiCorrelativo_by_nUniOrgCodigo_and_nPrdCodigo_and_nOrigen(ReqnAsiNumero);
                    #endregion

                    #region Obteniendo NewID "nAsiCodigo"

                    BE_ReqGetConAsientoNewId ReqNewIDnAsiento = new BE_ReqGetConAsientoNewId();
                    ReqNewIDnAsiento.cPerJurCodigo = cPerJurCodigo;
                    ReqNewIDnAsiento.nUniOrgCodigo = null;
                    nAsiCodigo = ObjAsiento.Get_NewID_ConAsiento(ReqNewIDnAsiento);

                    #endregion

                    //-----------
                    //ConAsiento
                    //-----------
                    if (!Ins_ConAsiento(nAsiCodigo, nOrigen, nPrdCodigo, nAsiCorrelativo, nUniOrgCodigo, "", dAsiFecha, "", 1))
                    {
                        throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: ConAsiento].!");
                    }

                    #region Generando nuevo Dcoumento(cDocCodigo)
                    BE_ReqGetDocumentoNewId ReqcDocu = new BE_ReqGetDocumentoNewId();
                    ReqcDocu.cPerJurCodigo = cPerJurCodigo;
                    cDocCodigo             = ObjAsiento.Get_NewID_Documento(ReqcDocu);
                    #endregion

                    //--------------
                    //ConAsiDetalle
                    //--------------
                    nSubTotal = fMonto / 1.18;
                    nIgv      = (fMonto / 1.18) * 0.18;

                    if (nDocTipo == 3001)
                    { //factura
                        if (!Ins_ConAsiDetalle(nAsiCodigo, 10, Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaX), nMoneda, 7001, fMonto, dAsiFecha, fTC, cGlosa, 1, cDocCodigo)
                            & !Ins_ConAsiDetalle(nAsiCodigo, 20, Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaIgv), nMoneda, 7003, nIgv, dAsiFecha, fTC, cGlosa, 1)
                            & !Ins_ConAsiDetalle(nAsiCodigo, 30, Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaSub), nMoneda, 7003, nSubTotal, dAsiFecha, fTC, cGlosa, 1)
                            )
                        {
                            throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: ConAsiDetalle].!");
                        }

                        //-------------
                        //ConAsiDetInt
                        //-------------
                        if (!Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaX), 10, nAsiCodigo, 2222, 1105, nMoneda, 0, fTC)         //2222-saldo(constante)
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaX), 10, nAsiCodigo, 1, 7005, nMoneda, fMonto, fTC)     //libro(interface)
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaX), 10, nAsiCodigo, nPrdCodigo, 1007, nMoneda, 0, fTC) //nPeriodo
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaX), 10, nAsiCodigo, 7010, 1105, nMoneda, fMonto, fTC)  //7010-Equivalente(constante)
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaIgv), 20, nAsiCodigo, 1, 7005, nMoneda, nIgv, fTC)
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaIgv), 20, nAsiCodigo, 7010, 1105, nMoneda, nIgv, fTC)
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaSub), 30, nAsiCodigo, 7010, 1105, nMoneda, nSubTotal, fTC)                                                       //7010-Equivalente(constante)
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaSub), 30, nAsiCodigo, 1, 7005, nMoneda, nSubTotal, fTC)                                                          //libro(interface)
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaSub), 30, nAsiCodigo, Get_nIntCodigo_Interface(cPerJurCodigo, 7003, CentroCosto), 7003, nMoneda, nSubTotal, fTC) //centro de costos
                            )
                        {
                            throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: Documentos].!");
                        }
                    }
                    else
                    {
                        if (!Ins_ConAsiDetalle(nAsiCodigo, 10, Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaSub), nMoneda, 7001, nSubTotal, dAsiFecha, fTC, cGlosa, 1)
                            & !Ins_ConAsiDetalle(nAsiCodigo, 11, Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaIgv), nMoneda, 7003, nIgv, dAsiFecha, fTC, cGlosa, 1, cDocCodigo)
                            & !Ins_ConAsiDetalle(nAsiCodigo, 12, Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaX), nMoneda, 7003, fMonto, dAsiFecha, fTC, cGlosa, 1, cDocCodigo)
                            )
                        {
                            throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: ConAsiDetalle].!");
                        }

                        //-------------
                        //ConAsiDetInt
                        //-------------
                        if (!Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaSub), 10, nAsiCodigo, Get_nIntCodigo_Interface(cPerJurCodigo, 7003, CentroCosto), 7003, nMoneda, nSubTotal, fTC) //centro costos
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaSub), 10, nAsiCodigo, 7010, 1105, nMoneda, nSubTotal, fTC)                                                     //7010-Equivalente(constante)
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaIgv), 11, nAsiCodigo, 3, 7005, nMoneda, nIgv, fTC)                                                             //Libro(3-ventas)
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaIgv), 11, nAsiCodigo, 7010, 1105, nMoneda, nIgv, fTC)                                                          //7010-Equivalente(constante)
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaX), 12, nAsiCodigo, 2222, 1105, nMoneda, fMonto, fTC)                                                          //2222-Saldo
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaX), 12, nAsiCodigo, 1, 7005, nMoneda, fMonto, fTC)                                                             //libro(interface)
                            & !Ins_ConAsiDetInt(Get_nIntCodigo_Interface(cPerJurCodigo, 7001, CtaX), 12, nAsiCodigo, 7010, 1105, nMoneda, fMonto, fTC)                                                          //7010-Equivalente(constante)
                            )
                        {
                            throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: Documentos].!");
                        }
                    }

                    //-----------
                    //Documentos
                    //-----------
                    if (!Ins_Documentos(cDocCodigo, dAsiFecha, cDocObserv, nDocTipo, nEstado))
                    {
                        throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: Documentos].!");
                    }

                    //--------------
                    //DocInterface
                    //--------------
                    if (!Ins_DocInterface(cDocCodigo, nAsiCodigo, 7009, dAsiFecha)
                        & !Ins_DocInterface(cDocCodigo, 3, 7005, dAsiFecha)     //7005-Ventas (Tipo de Libro
                        & !Ins_DocInterface(cDocCodigo, 7003, 1070, dAsiFecha)) // 7003-Haber (Destino)
                    {
                        throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: Documentos].!");
                    }

                    //--------------
                    //DocIdentifica
                    //--------------
                    if (!Ins_DocIdentifica(cDocCodigo, 1, cDocNDoc))
                    {
                        throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: DocIdentifica].!");
                    }

                    //--------------
                    //DocComprobante
                    //--------------
                    //if (nDocTipo == 3001)
                    //{ //factura
                    if (!Ins_DocComprobante(cDocCodigo, 1000, nMoneda, fMonto)      //1000-Total
                        & !Ins_DocComprobante(cDocCodigo, 1001, nMoneda, nSubTotal) //1001-Sub-Total
                        & !Ins_DocComprobante(cDocCodigo, 1050, nMoneda, fTC)       //1050-Tipo Cambio del dia
                        & !Ins_DocComprobante(cDocCodigo, 2001, nMoneda, nIgv)      //2001-IGV
                        )
                    {
                        throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: DocComprobante].!");
                    }
                    //}

                    //----------
                    //DocPersona
                    //----------
                    if (nDocTipo == 3001)  //factura
                    {
                        nDocTipo = 11;
                    }
                    else
                    {
                        nDocTipo = 25;
                    }

                    if (!Ins_DocPersona(cDocCodigo, 1, cPerCodigo, 16, nDocTipo) //Cliente
                        & !Ins_DocPersona(cDocCodigo, 2, cPerJurCodigo, 16, 0)   //Empresa (medica)
                        & !Ins_DocPersona(cDocCodigo, 7001, cPerCodigo, 16, nDocTipo)
                        & !Ins_DocPersona(cDocCodigo, 7002, cPerCodigo, 16, nDocTipo)
                        & !Ins_DocPersona(cDocCodigo, 7003, cPerCodigo, 16, nDocTipo)
                        & !Ins_DocPersona(cDocCodigo, 7004, cPerCodigo, 16, nDocTipo)
                        & !Ins_DocPersona(cDocCodigo, 7005, cPerCodigo, 16, nDocTipo)
                        )
                    {
                        throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: DocPersona].!");
                    }

                    //-----------
                    //DocVigencia
                    //-----------
                    if (!Ins_DocVigencia(cDocCodigo, dAsiFecha, dAsiFecha))
                    {
                        throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: DocVigencia].!");
                    }

                    //------
                    //DocRef
                    //------
                    if (!Ins_DocRef(cDocCodigo, cDocRefCodigo, dAsiFecha))
                    {
                        throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: DocRef].!");
                    }
                    else
                    {
                        exito = true;
                    }

                    tx.Complete();
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(exito);
        }