Пример #1
0
        public bool Actualizar(BE_LOG_COMPRAS entCabecera, List <BE_LOG_COMPRASDET> lstDetalle, List <BE_LOG_COMPRASDOC> lstDocumentos)
        {
            bool             b_result = false;
            MySqlTransaction trans;
            int n_Fila = 0;

            trans = mysConec.BeginTransaction();

            try
            {
                if (entCabecera.n_idtipdoc == 8)
                {
                    DataTable      dtresult   = new DataTable();
                    CD_log_compras o_compras  = new CD_log_compras();
                    double         n_valorinc = 0;
                    double         n_salfac   = 0;

                    // TRAEMOS LOS DATOS DE LA NOTA DE CREDITO QUE SE ESTA ACTUALIZADO
                    o_compras.mysConec = mysConec;
                    o_compras.TraerRegistro(Convert.ToInt32(entCabecera.n_id));
                    dtresult   = o_compras.dtRegistro;
                    n_valorinc = Convert.ToDouble(dtresult.Rows[0]["n_imptotcom"]);                                        // EL IMPORTE ORIGINAL DE LA NOTA DE CREDITO

                    // TRAEMOS EL DOCUMENTO QUE SE NODIFICA
                    int n_iddocventa = Convert.ToInt32(dtresult.Rows[0]["n_iddocmod"]);                                   // OBTENEMOS EL ID DEL DOCUMENTO QUE SE MODIFICA
                    o_compras.TraerRegistro(n_iddocventa);
                    dtresult = o_compras.dtRegistro;
                    n_salfac = Convert.ToDouble(dtresult.Rows[0]["n_impsal"]);
                    n_salfac = n_salfac + n_valorinc;

                    string[,] arrParam1 = new string[3, 3] {
                        { "n_idreg", "System.INT32", n_iddocventa.ToString() },
                        { "n_importe", "System.DOUBLE", n_salfac.ToString() },
                        { "n_tipo", "System.DOUBLE", "1" }
                    };

                    if (xMiFuncion.StoreEjecutar("log_compras_actualizarsaldo", arrParam1, mysConec) == false)
                    {
                        b_ocurrioError = xMiFuncion.booOcurrioError;
                        c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                        n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                        trans.Rollback();
                        return(b_result);
                    }
                }

                // ACTUALIZAMOS EL ESTADO DE LOS DOCUMENTOS ASIGNADOS A NO PROCESADO
                CD_alm_movimientos objMov = new CD_alm_movimientos();
                objMov.mysConec = mysConec;

                if (TraerRegistro(entCabecera.n_id) == true)
                {
                    if (dtListaDoc.Rows.Count != 0)
                    {
                        for (n_Fila = 0; n_Fila <= dtListaDoc.Rows.Count - 1; n_Fila++)
                        {
                            if (objMov.ActualizarDocCompra(Convert.ToInt32(dtListaDoc.Rows[n_Fila]["n_iddoc"]), 0, 0) == false)
                            {
                                b_ocurrioError = xMiFuncion.booOcurrioError;
                                c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                                n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                                trans.Rollback();
                                return(b_result);
                            }
                        }
                    }
                }

                if (xMiFuncion.StoreEjecutar("log_compras_actualizar", entCabecera, mysConec, null) == true)
                {
                    // ACTUALIZAMOS EL SALDO DE LA FACTURA QUE SE MODIFICA
                    if (entCabecera.n_idtipdoc == 8)
                    {
                        //BE_LOG_COMPRAS e_compras = new BE_LOG_COMPRAS();
                        DataTable      dtres     = new DataTable();
                        CD_log_compras o_compras = new CD_log_compras();
                        double         n_salfac  = 0;

                        o_compras.mysConec = mysConec;

                        // TRAEMOS EL DOCUMENTO QUE SE NODIFICA
                        int n_iddocventa = entCabecera.n_iddocmod;                                   // OBTENEMOS EL ID DEL DOCUMENTO QUE SE MODIFICA
                        o_compras.TraerRegistro(n_iddocventa);
                        dtres    = o_compras.dtRegistro;
                        n_salfac = Convert.ToDouble(dtres.Rows[0]["n_impsal"]);
                        n_salfac = n_salfac - entCabecera.n_imptotcom;

                        string[,] arrParam1 = new string[3, 3] {
                            { "n_idreg", "System.INT32", n_iddocventa.ToString() },
                            { "n_importe", "System.DOUBLE", n_salfac.ToString() },
                            { "n_tipo", "System.INT32", "2" }
                        };

                        if (xMiFuncion.StoreEjecutar("log_compras_actualizarsaldo", arrParam1, mysConec) == false)
                        {
                            b_ocurrioError = xMiFuncion.booOcurrioError;
                            c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                            n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                            trans.Rollback();
                            return(b_result);
                        }
                    }

                    // ELIMINAMOS LOS ITEMS PREVIOS
                    string[,] arrParametros = new string[1, 3] {
                        { "n_idcom", "System.INT64", entCabecera.n_id.ToString() }
                    };

                    // ADICIONAMOS EL DETALLE DE LA COMPRA
                    if (xMiFuncion.StoreEjecutar("log_comprasdet_delete", arrParametros, mysConec) == true)
                    {
                        // SI LOS ITEMS SE ELIMINARON CON EXITO INSERTAMOS LOS NUEVOS ITEMS
                        for (n_Fila = 0; n_Fila <= lstDetalle.Count - 1; n_Fila++)
                        {
                            lstDetalle[n_Fila].n_idcom = Convert.ToInt32(entCabecera.n_id);
                            if (xMiFuncion.StoreEjecutar("log_comprasdet_insertar", lstDetalle[n_Fila], mysConec, null) == false)
                            {
                                b_ocurrioError = xMiFuncion.booOcurrioError;
                                c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                                n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                                trans.Rollback();
                                return(b_result);
                            }
                        }
                    }
                    else
                    {
                        b_ocurrioError = xMiFuncion.booOcurrioError;
                        c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                        n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                        trans.Rollback();
                        return(b_result);
                    }

                    // ADICIONAMOS LOS DOCUMENTOS DE LA COMPRA
                    if (xMiFuncion.StoreEjecutar("log_comprasdoc_delete", arrParametros, mysConec) == true)
                    {
                        // SI LOS DOCUMENTOS DE LA COMPRA
                        for (n_Fila = 0; n_Fila <= lstDocumentos.Count - 1; n_Fila++)
                        {
                            lstDocumentos[n_Fila].n_idcom = Convert.ToInt32(entCabecera.n_id);
                            if (xMiFuncion.StoreEjecutar("log_comprasdoc_insertar", lstDocumentos[n_Fila], mysConec, null) == false)
                            {
                                b_ocurrioError = xMiFuncion.booOcurrioError;
                                c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                                n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                                trans.Rollback();
                                return(b_result);
                            }
                        }
                    }
                    else
                    {
                        b_ocurrioError = xMiFuncion.booOcurrioError;
                        c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                        n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                        trans.Rollback();
                        return(b_result);
                    }

                    // ACTUALIZAMOS LOS DOCUMENTOS ASIGNADOS A LA COMPRA
                    if (lstDocumentos.Count != 0)
                    {
                        objMov.mysConec = mysConec;
                        for (n_Fila = 0; n_Fila <= lstDocumentos.Count - 1; n_Fila++)
                        {
                            if (objMov.ActualizarDocCompra(lstDocumentos[n_Fila].n_iddoc, entCabecera.n_id, 1) == false)
                            {
                                b_ocurrioError = xMiFuncion.booOcurrioError;
                                c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                                n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                                trans.Rollback();
                                return(b_result);
                            }
                        }
                    }

                    if (entCabecera.n_idtipdoc == 8)             // SI ES NOTA DE CREDITO
                    {
                    }
                }
                else
                {
                    b_ocurrioError = xMiFuncion.booOcurrioError;
                    c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                    n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                    trans.Rollback();
                    return(b_result);
                }

                b_result = true;
                trans.Commit();
                return(b_result);
            }
            catch (Exception exc)
            {
                // SI SUCEDE UN ERROR DEVOLVEMOS FALSO
                b_ocurrioError = true;
                c_ErrorMensaje = exc.Message.ToString();
                n_ErrorNumber  = exc.HResult;
                trans.Rollback();
                return(b_result);
            }
        }
Пример #2
0
        public bool Insertar(BE_LOG_COMPRAS entCabecera, List <BE_LOG_COMPRASDET> lstDetalle, List <BE_LOG_COMPRASDOC> lstDocumentos)
        {
            bool             b_result = false;
            MySqlTransaction trans;
            int n_Fila = 0;

            trans = mysConec.BeginTransaction();

            try
            {
                if (xMiFuncion.StoreEjecutar("log_compras_insertar", entCabecera, mysConec, 0) == true)
                {
                    // ACTUALIZAMOS EL SALDO DE LA FACTURA QUE SE MODIFICA
                    if (entCabecera.n_idtipdoc == 8)
                    {
                        //BE_LOG_COMPRAS e_compras = new BE_LOG_COMPRAS();
                        DataTable      dtres     = new DataTable();
                        CD_log_compras o_compras = new CD_log_compras();
                        double         n_salfac  = 0;

                        o_compras.mysConec = mysConec;

                        // TRAEMOS EL DOCUMENTO QUE SE NODIFICA
                        int n_iddocventa = entCabecera.n_iddocmod;                                   // OBTENEMOS EL ID DEL DOCUMENTO QUE SE MODIFICA
                        o_compras.TraerRegistro(n_iddocventa);
                        dtres    = o_compras.dtRegistro;
                        n_salfac = Convert.ToDouble(dtres.Rows[0]["n_impsal"]);
                        n_salfac = n_salfac - entCabecera.n_imptotcom;

                        string[,] arrParam1 = new string[3, 3] {
                            { "n_idreg", "System.INT32", n_iddocventa.ToString() },
                            { "n_importe", "System.DOUBLE", n_salfac.ToString() },
                            { "n_tipo", "System.INT32", "2" }
                        };

                        if (xMiFuncion.StoreEjecutar("log_compras_actualizarsaldo", arrParam1, mysConec) == false)
                        {
                            b_ocurrioError = xMiFuncion.booOcurrioError;
                            c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                            n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                            trans.Rollback();
                            return(b_result);
                        }
                    }

                    entCabecera.n_id = Convert.ToInt32(xMiFuncion.intIdGenerado);
                    // GRABAMOS EL DETALLE DE LA COMPRA
                    for (n_Fila = 0; n_Fila <= lstDetalle.Count - 1; n_Fila++)
                    {
                        lstDetalle[n_Fila].n_idcom = Convert.ToInt32(xMiFuncion.intIdGenerado);
                        if (xMiFuncion.StoreEjecutar("log_comprasdet_insertar", lstDetalle[n_Fila], mysConec, null) == false)
                        {
                            b_ocurrioError = xMiFuncion.booOcurrioError;
                            c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                            n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                            trans.Rollback();
                            return(b_result);
                        }
                    }

                    // GRABAMOS LOS DOUMENTOS ASIGNADOS A LA COMPRA
                    for (n_Fila = 0; n_Fila <= lstDocumentos.Count - 1; n_Fila++)
                    {
                        lstDocumentos[n_Fila].n_idcom = Convert.ToInt32(xMiFuncion.intIdGenerado);
                        if (xMiFuncion.StoreEjecutar("log_comprasdoc_insertar", lstDocumentos[n_Fila], mysConec, null) == false)
                        {
                            b_ocurrioError = xMiFuncion.booOcurrioError;
                            c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                            n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                            trans.Rollback();
                            return(b_result);
                        }
                    }

                    // ACTUALIZAMOS LOS DOCUMENTOS ASIGNADOS A LA COMPRA
                    CD_alm_movimientos objMov = new CD_alm_movimientos();
                    objMov.mysConec = mysConec;
                    for (n_Fila = 0; n_Fila <= lstDocumentos.Count - 1; n_Fila++)
                    {
                        if (objMov.ActualizarDocCompra(lstDocumentos[n_Fila].n_iddoc, entCabecera.n_id, 1) == false)
                        {
                            b_ocurrioError = xMiFuncion.booOcurrioError;
                            c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                            n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                            trans.Rollback();
                            return(b_result);
                        }
                    }
                }
                else
                {
                    b_ocurrioError = xMiFuncion.booOcurrioError;
                    c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                    n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                    trans.Rollback();
                    return(b_result);
                }
                n_IdGenerado = entCabecera.n_id;
                b_result     = true;
                trans.Commit();
                return(b_result);
            }
            catch (Exception exc)
            {
                // SI SUCEDE UN ERROR DEVOLVEMOS FALSO
                b_ocurrioError = true;
                c_ErrorMensaje = exc.Message.ToString();
                n_ErrorNumber  = exc.HResult;
                trans.Rollback();
                return(b_result);
            }
        }