//------------------------------------- //Obtiene NewID ConAsiento Autogenerado //------------------------------------- public int Get_NewID_ConAsiento(BE_ReqGetConAsientoNewId Request) { int nAsiCodigo = 0; 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 = "[sp_ConAsiento_Get_NewId]"; cm.CommandType = CommandType.StoredProcedure; cm.Parameters.AddWithValue("cPerJurCodigo", Request.cPerJurCodigo); cm.Parameters.AddWithValue("nUniOrgCodigo", Request.cPerJurCodigo); cm.Connection = cn; using (SqlDataReader dr = cm.ExecuteReader()) { while (dr.Read()) { nAsiCodigo = dr.GetInt32(dr.GetOrdinal("nAsiCodigo")); } } } } } catch (Exception) { throw; } return nAsiCodigo; }
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; }