Esempio n. 1
0
        //Funcion para factuarar un vehiculos ya recibido
        public bool Facturar_Vehiculo_Recibido(DataTable vehiculos)
        {
            int i;

            sqlStrings = new ArrayList();
            bool status = false;
            //Debemos crear el registro de mfacturaproveedor
            FacturaProveedor facturaRepuestos = new FacturaProveedor("FPR", prefijoOrdenPago, prefijoFacturaProveedor, nitProveedor, Almacen, "F", Convert.ToUInt64(numeroOrdenPago), Convert.ToUInt64(numeroFacturaProveedor),
                                                                     //0			1					2						3			4		5		6										7
                                                                     estadoFacturaProveedor, Convert.ToDateTime(fechaFactura), Convert.ToDateTime(fechaVencimiento), Convert.ToDateTime(null), Convert.ToDateTime(fechaIngreso),
                                                                     //8									9											10							11
                                                                     Convert.ToDouble(valorFactura), Convert.ToDouble(valorIva), Convert.ToDouble(valorFletes), Convert.ToDouble(valorIvaFletes), Convert.ToDouble(valorRetencion),
                                                                     //12								13								14							15								16
                                                                     observacion, usuario);

            //17			18
            facturaRepuestos.GrabarFacturaProveedor(false);
            numeroOrdenPago = facturaRepuestos.NumeroFactura.ToString();
            for (i = 0; i < facturaRepuestos.SqlStrings.Count; i++)
            {
                sqlStrings.Add(facturaRepuestos.SqlStrings[i].ToString());
            }

            //Cálculo de retenciones
            RetencionVehiculos = new Retencion(facturaRepuestos.NitProveedor, facturaRepuestos.PrefijoFactura,
                                               Convert.ToInt32(facturaRepuestos.NumeroFactura), (Convert.ToDouble(valorFactura) + Convert.ToDouble(valorFletes)),
                                               (Convert.ToDouble(valorIva) + Convert.ToDouble(valorIvaFletes)), "V", false);
            RetencionVehiculos.Guardar_Retenciones(false);
            for (i = 0; i < RetencionVehiculos.Sqls.Count; i++)
            {
                sqlStrings.Add(RetencionVehiculos.Sqls[i].ToString());
            }

            //Ahora debemos actualizar los registros de mvehiculo y asociarlo a la factura del proveedor
            for (i = 0; i < vehiculos.Rows.Count; i++)
            {
                sqlStrings.Add("UPDATE mvehiculo SET pdoc_codiordepago='" + prefijoOrdenPago + "', mfac_numeordepago=" + numeroOrdenPago + ", test_tipoesta=20 WHERE mcat_vin='" + vehiculos.Rows[i][2].ToString() + "' and test_tipoesta = 10");
            }
            if (DBFunctions.Transaction(sqlStrings))
            {
                status      = true;
                processMsg += DBFunctions.exceptions + "<br>";
            }
            else
            {
                processMsg += "Error: " + DBFunctions.exceptions + "<br><br>";
            }
            return(status);
        }
Esempio n. 2
0
        protected void NewAjust(Object Sender, EventArgs E)
        {
            if (!VerificarValoresGrillaFacturacion())
            {
                BindDatas();
                return;
            }
            //QUEDA
            int diasP = -1;

            try{ diasP = Convert.ToInt16(txtDiasP.Text); }
            catch {};
            if (diasP < 0 || diasP > 180)
            {
                BindDatas();
                Utils.MostrarAlerta(Response, "El numero de días de plazo dado NO es válido, debe estar entre 0 y 180!");
                return;
            }
            if (ddlCodDoc.SelectedIndex == 0 && ddlCodDoc.Items.Count > 1)
            {
                BindDatas();
                Utils.MostrarAlerta(Response, "Por favor seleccione el Documento para realizar el proceso !!!");
                return;
            }

            string nLis1 = Request.QueryString["nped"];

            string[] nLis     = nLis1.ToString().Split('-');//Numero de Lista de empaque
            string   ano_cont = DBFunctions.SingleData("SELECT pano_ano from cinventario");
            int      ano      = Convert.ToInt16(ano_cont);
            int      mes      = Convert.ToInt16(DBFunctions.SingleData("select PMES_MES from CINVENTARIO;"));

            if (ano != Convert.ToDateTime(tbDate.Text).Year || mes != Convert.ToDateTime(tbDate.Text).Month)
            {
                Utils.MostrarAlerta(Response, "Fecha NO vigente !!");
                if (HttpContext.Current.User.Identity.Name.ToLower().ToString() == "abarrios")  // EUROTECK temporalmente permite facturar con otras fechas
                {
                }
                else
                {
                    return;
                }
            }
            if (ddlCodDoc.SelectedItem.Value == "Seleccione..")
            {
                Utils.MostrarAlerta(Response, "Usted NO ha configurado un documento del tipo FC en esta sede para este proceso..!");
                return;
            }
            btnAjus.Enabled = false; // apaga el boton de facturar

            PedidoFactura pedfac = new PedidoFactura(txtNIT.Text, Convert.ToDateTime(tbDate.Text), txtObs.Text,
                                                     //											1				2					3
                                                     diasP, nLis1, ddlVendedor.SelectedItem.Value, ddlCodDoc.SelectedItem.Value, Convert.ToUInt32(txtNumDoc.Text),
                                                                                                   //4    5               6                           7                           8
                                                     Convert.ToDouble(txtTotIF.Text.Substring(1)), Convert.ToDouble(tbIvaFlts.Text.Substring(1)),
                                                                                                   //9                                                                              10
                                                     Convert.ToDouble(txtSubTotal.Text.Substring(1)) - Convert.ToDouble(txtDesc.Text.Substring(1)),
                                                                                                   //11
                                                     Convert.ToDouble(txtTotal.Text.Substring(1)), // 12
                                                     kit,                                          // 13
                                                     AnoA,                                         //14
                                                     almacen                                       // 15
                                                     );

            if (hdCargoTrans.Value != "")
            {
                pedfac.CargoOrden = hdCargoTrans.Value;
            }
            int n;

            for (n = 0; n < dtInserts.Rows.Count; n++)
            {
                string codI = "";
                Referencias.Guardar(dtInserts.Rows[n][0].ToString(), ref codI, DBFunctions.SingleData("SELECT plin_tipo FROM plineaitem WHERE plin_codigo='" + dtInserts.Rows[n][11].ToString() + "'"));
                pedfac.InsertaFila(codI, Convert.ToDouble(dtInserts.Rows[n][2]),
                                   //1
                                   Convert.ToDouble(dtInserts.Rows[n][3]), Convert.ToDouble(dtInserts.Rows[n][4]),
                                   //2											3
                                   Convert.ToDouble(dtInserts.Rows[n][5]), Convert.ToDouble(dtInserts.Rows[n][9]), dtInserts.Rows[n]["PPED_CODIGO"].ToString(), dtInserts.Rows[n]["MPED_NUMEPEDI"].ToString());
                //4											5                                                   6                                       7
            }

            // causacion de retenciones en la venta
            Retencion retencion = new Retencion(
                txtNIT.Text,

                ddlCodDoc.SelectedItem.Value,                                                                  // PrefijoFactura,
                Convert.ToInt32(txtNumDoc.Text),                                                               // NumeroFactura,
                Convert.ToDouble(txtSubTotal.Text.Substring(1)) - Convert.ToDouble(txtDesc.Text.Substring(1)), //ValorFactura,
                Convert.ToDouble(txtIVA.Text.Substring(1)),                                                    //ValorIva,
                "R", true);

            if (pedfac.RealizarFac(true))
            {
                if (retencion.Guardar_Retenciones(true))
                {
                    string indexPage     = ConfigurationManager.AppSettings["MainIndexPage"];
                    string indexAjaxPage = ConfigurationManager.AppSettings["MainAjaxPage"];
                    Session.Clear();

                    contaOnline.contabilizarOnline(ddlCodDoc.SelectedItem.Value, Convert.ToInt32(txtNumDoc.Text), DateTime.Now, ddlAlmacen.SelectedValue);

                    if (Request.QueryString["orig"] == "Inventarios.ListasEmpaque")
                    {
                        Response.Redirect(indexPage + "?process=Inventarios.ListasEmpaque&actor=C&subprocess=Fact&prefF=" + pedfac.Coddocumentof + "&numF=" + pedfac.Numdocumentof + "&factGen=1");
                    }
                    //Response.Redirect("" + indexPage + "?process=Inventarios.VistaImpresion&prefFact="+pedfac.Coddocumentof+"&numFact="+pedfac.Numdocumentof+"&cliente="+Tipo+"&orig="+Request.QueryString["orig"]+"");
                    else if (Request.QueryString["orig"] == "Inventarios.CrearPedido")
                    {
                        Response.Redirect(indexAjaxPage + "?process=Inventarios.CrearPedido&actor=C&subprocess=Fact&prefF=" + pedfac.Coddocumentof + "&numF=" + pedfac.Numdocumentof + "");
                    }
                    //Response.Redirect(indexPage+"?process=Inventarios.ListasEmpaque&actor=C&subprocess=Fact");
                    //lbInfo.Text +="<br>BIEN :" +pedfac.ProcessMsg;
                }
                else
                {
                    lbInfo.Text += retencion.Mensajes;
                }
            }
            else
            {
                lbInfo.Text += "<br>ERROR :" + pedfac.ProcessMsg;
            }
        }
Esempio n. 3
0
        //REALIZAR PROCESO-------------------------------------
        protected void NewAjust(Object Sender, EventArgs E)
        {
            if (chkCerrarO.Checked == true)
            {
                Totales();
            }
            btnAjus.Enabled = false;
            int       diasP = 0; //Dias plazo
            double    vFlet, vIVAFlet, total, vDescuento, vIVA, vExternos;
            DateTime  fechaProceso;
            string    vend, codigoAlmacen, ccos, carg, prefE, ano_cinv, tipoE;
            UInt64    numPre;
            ArrayList sqlStrings;

            #region Validaciones
            try{ numPre = Convert.ToUInt32(txtNumFacE.Text); }
            catch { Utils.MostrarAlerta(Response, "El número de entrada de almacén no es valido!"); BindDatas(); return; }

            try{ diasP = Convert.ToInt32(txtPlazo.Text); }
            catch { Utils.MostrarAlerta(Response, "Los días de plazo no son válidos!"); BindDatas(); return; }

            try
            {
                vDescuento = Convert.ToDouble(txtDesc.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "El valor de los descuentos no es válido!");
                return;
            }

            try
            {
                vExternos = Convert.ToDouble(txtTotalExternos.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "El valor de los totales externos no es valido!");
                return;
            }

            try
            {
                vFlet = Convert.ToDouble(txtFlet.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "El valor de los fletes no es valido!");
                return;
            }
            try
            {
                vIVAFlet = Convert.ToDouble(txtTotIF.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "El valor IVA de los fletes no es valido!");
                return;
            }
            try
            {
                vIVA = Convert.ToDouble(txtIVA.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "El valor del IVA no es valido!");
                return;
            }
            try
            {
                fechaProceso = Convert.ToDateTime(tbDate.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "Fecha de proceso no es valido!");
                return;
            }
            try
            {
                total = Convert.ToDouble(txtTotal.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "El valor del total no es valido!");
                return;
            }
            if (vExternos < vDescuento)
            {
                Utils.MostrarAlerta(Response, "Los descuentos no pueden superar los valores externos!");
                return;
            }
            //Validar total
            if (Math.Abs((vExternos - vDescuento + vIVA + vFlet + vIVAFlet) - (total)) > 0.009)
            {
                Utils.MostrarAlerta(Response, "El valor del total no coincide!");
                BindDatas();
                return;
            }
            #endregion Validaciones

            //Aqui Iniciamos el proceso como tal, habiendo superado con exito el proceso de validacion
            vend          = ddlVendedor.SelectedValue;   //Codigo del Vendedor
            codigoAlmacen = ddlAlmacen.SelectedValue;
            ccos          = DBFunctions.SingleData("SELECT pcen_centinv FROM palmacen WHERE palm_almacen='" + codigoAlmacen + "'");
            carg          = DBFunctions.SingleData("SELECT TVEND_CODIGO FROM PVENDEDOR WHERE PVEN_CODIGO='" + vend + "'"); //Cargo???????
            prefE         = "";                                                                                            //Prefijo Documento Interno (PDOCUMENTO)
            numPre        = 0;                                                                                             //Numero de Documento Interno (PDOCUMENTO)
            ano_cinv      = ConfiguracionInventario.Ano;
            tipoE         = DBFunctions.SingleData("SELECT MORD_TIPO FROM MORDENPRODUCCION WHERE PDOC_CODIGO='" + ddlPrefOrden.SelectedValue + "' AND MORD_NUMEORDE=" + ddlNumOrden.SelectedValue + ";");
            sqlStrings    = new ArrayList();

            #region Factura Proveedor
            ArrayList        arrRecepciones          = new ArrayList();
            FacturaProveedor facturaRepuestos        = new FacturaProveedor();
            string           prefijoFacturaProveedor = ddlPrefE.SelectedValue;
            UInt64           numeroFacturaProveedor  = Convert.ToUInt64(txtNumFacE.Text.Trim());
            prefE  = prefijoFacturaProveedor;
            numPre = numeroFacturaProveedor;

            if (DBFunctions.RecordExist("SELECT * FROM mfacturaproveedor WHERE pdoc_codiordepago='" + prefijoFacturaProveedor + "' AND mfac_numeordepago=" + numeroFacturaProveedor + ""))
            {
                numeroFacturaProveedor = Convert.ToUInt32(DBFunctions.SingleData("SELECT pdoc_ultidocu+1 FROM pdocumento WHERE pdoc_codigo='" + prefijoFacturaProveedor + "'"));
            }

            FacturaProveedor facturaRepuestosProv    = new FacturaProveedor("FPR", prefijoFacturaProveedor,
                                                                            ddlPrefOrden.SelectedValue, txtNIT.Text.Trim(), ddlAlmacen.SelectedValue, "F", numeroFacturaProveedor,
                                                                            Convert.ToUInt64(ddlNumOrden.SelectedValue), "P", fechaProceso,
                                                                            fechaProceso.AddDays(Convert.ToDouble(txtPlazo.Text.Trim())),
                                                                            Convert.ToDateTime(null), fechaProceso, vExternos - vDescuento,
                                                                            vIVA, vFlet, vIVAFlet, 0, txtObs.Text,
                                                                            HttpContext.Current.User.Identity.Name.ToLower());

            facturaRepuestosProv.GrabarFacturaProveedor(false);
            numPre = facturaRepuestosProv.NumeroFactura;

            for (int i = 0; i < facturaRepuestosProv.SqlStrings.Count; i++)
            {
                sqlStrings.Add(facturaRepuestosProv.SqlStrings[i].ToString());
            }
            #endregion Factura Proveedor

            #region Retenciones
            DataTable dtRet = TablaRetenciones();
            dtRet.Rows[0][0]  = "1";
            dtRet.Rows[0][1]  = DBFunctions.SingleData("SELECT MITE_CODIGO FROM MITEMS WHERE TORI_CODIGO='X' FETCH FIRST 1 ROWS ONLY;");
            dtRet.Rows[0][2]  = "";
            dtRet.Rows[0][3]  = 1;
            dtRet.Rows[0][4]  = 1;
            dtRet.Rows[0][5]  = vExternos;
            dtRet.Rows[0][6]  = vDescuento;
            dtRet.Rows[0][7]  = (vIVA * 100) / vExternos;
            dtRet.Rows[0][8]  = "";
            dtRet.Rows[0][9]  = total;
            dtRet.Rows[0][10] = "";
            dtRet.Rows[0][11] = "";
            try
            {
                Retencion RetencionItems = new Retencion(facturaRepuestosProv.NitProveedor,
                                                         facturaRepuestosProv.PrefijoFactura,
                                                         Convert.ToInt32(facturaRepuestosProv.NumeroFactura),
                                                         dtRet,
                                                         (facturaRepuestosProv.ValorFactura + facturaRepuestosProv.ValorFletes),
                                                         (facturaRepuestosProv.ValorIva + facturaRepuestosProv.ValorIvaFletes),
                                                         "R", false);

                RetencionItems.Guardar_Retenciones(false);

                for (int i = 0; i < RetencionItems.Sqls.Count; i++)
                {
                    sqlStrings.Add(RetencionItems.Sqls[i].ToString());
                }
            }
            catch (Exception ex)
            {
                Utils.MostrarAlerta(Response, "Error en Retenciones. Detalles : \\n" + ex.Message + "");
                return;
            }
            #endregion

            #region Movimiento de Kardex
            string ano_cont = ConfiguracionInventario.Ano;

            int tm = 20;            //Entradas de proveedor
            //Creamos el Objeto manejador de movimientos de kardex utilizando el constructor #2
            Movimiento Mov = new Movimiento(prefE, numPre, tm, fechaProceso, txtNIT.Text, codigoAlmacen, vend, carg, ccos, "N");

            double cant, valU, costP, costPH, costPA, costPHA, invI, invIA, pIVA, pDesc, cantDev, valP;

            ArrayList Prrs    = new ArrayList();         //Prerecepciones de la lista
            DataTable dtItems = (DataTable)ViewState["ITEMS"];
            //DITEMS
            for (int n = 0; n < dtItems.Rows.Count; n++)
            {
                string codI = dtItems.Rows[n]["CODIGO"].ToString();
                string prefijoDocumentoReferencia = "";
                UInt64 numeroDocumentoReferencia  = 0;
                prefijoDocumentoReferencia = ddlPrefOrden.SelectedValue;                  // prefijo Orden
                numeroDocumentoReferencia  = Convert.ToUInt32(ddlNumOrden.SelectedValue); // Numero Orden
                cant    = Convert.ToDouble(dtItems.Rows[n]["CANTIDAD"]);                  //cantidad ingresada
                valU    = Convert.ToDouble(dtItems.Rows[n]["VALOR"]);                     //(Costeo)
                pIVA    = 0;                                                              //iva
                pDesc   = 0;                                                              //descuento
                costP   = SaldoItem.ObtenerCostoPromedio(codI, ano_cont);
                costPH  = SaldoItem.ObtenerCostoPromedioHistorico(codI, ano_cont);
                costPA  = SaldoItem.ObtenerCostoPromedioAlmacen(codI, ano_cont, codigoAlmacen);
                costPHA = SaldoItem.ObtenerCostoPromedioHistoricoAlmacen(codI, ano_cont, codigoAlmacen);
                invI    = SaldoItem.ObtenerCantidadActual(codI, ano_cont);                       //Inventario inicial
                invIA   = SaldoItem.ObtenerCantidadActualAlmacen(codI, ano_cont, codigoAlmacen); //Inventario inicial Almacen
                cantDev = 0;                                                                     //devolucion
                valP    = costP;                                                                 //Valor publico
                Mov.InsertaFila(codI, cant, valU, costP, costPA, pIVA, pDesc, cantDev, costPH, costPHA, valP, invI, invIA, prefijoDocumentoReferencia, numeroDocumentoReferencia);
                //				0	  1		2	3		4	 5		6		7	  8		9	   10	11	  12			13							14
            }

            Mov.RealizarMov(false);
            for (int i = 0; i < Mov.SqlStrings.Count; i++)
            {
                sqlStrings.Add(Mov.SqlStrings[i].ToString());
            }
            #endregion

            #region Actualizar detalle y orden produccion
            //Actualizar cantidad entregada
            for (int n = 0; n < dtItems.Rows.Count; n++)
            {
                sqlStrings.Add(
                    "UPDATE DORDENPRODUCCION SET " +
                    "DORD_CANTENTR=DORD_CANTENTR+" + dtItems.Rows[n]["CANTIDAD"] + " " +
                    "WHERE PDOC_CODIGO='" + ddlPrefOrden.SelectedValue + "' AND " +
                    "MORD_NUMEORDE=" + ddlNumOrden.SelectedValue + " AND " +
                    "PENS_CODIGO='" + dtItems.Rows[n]["ENSAMBLE"] + "' AND " +
                    "MITE_CODIGO='" + dtItems.Rows[n]["CODIGO"] + "';");
            }

            //cerrar mordenproduccion si se recibieron todos los items
            sqlStrings.Add(
                "UPDATE MORDENPRODUCCION MO SET MO.TEST_ESTADO='F' " +
                "WHERE MO.pdoc_codigo='" + ddlPrefOrden.SelectedValue + "' AND mord_numeorde=" + ddlNumOrden.SelectedValue + " AND " +
                "NOT EXISTS(" +
                " SELECT * FROM DORDENPRODUCCION DOR " +
                " WHERE " +
                " DOR.pdoc_codigo=MO.pdoc_codigo AND DOR.mord_numeorde=MO.mord_numeorde AND " +
                " DOR.DORD_CANTXPROD>DORD_CANTENTR " +
                ");");
            #endregion

            #region Costeo
            //Costeo
            sqlStrings.Add("INSERT INTO dcostoproduccion values(" +
                           "'" + ddlPrefE.SelectedValue + "'," + numPre + "," +
                           Convert.ToDouble(ViewState["TOT_MATPRIMA"]).ToString() + "," +
                           Convert.ToDouble(ViewState["TOT_TERCEROS"]).ToString() + "," +
                           Convert.ToDouble(ViewState["TOT_MANOBRA"]).ToString() + "," +
                           Convert.ToDouble(ViewState["TOT_CIF"]).ToString() + "," +
                           Convert.ToDouble(ViewState["TOT_MAQUINARIA"]).ToString() + "," +
                           "'" + ViewState["MITE_CODIGO"].ToString() + "'" +
                           ");");
            #endregion Costeo

            //Cerrar orden de producción
            if (chkCerrarO.Checked == true)
            {
                string sql = CerrarOrdenProduccion();
                if (sql != "")
                {
                    sqlStrings.Add(sql);
                }
                else
                {
                    Utils.MostrarAlerta(Response, "Se presentó un error al intentar cerrar la orden de ooperación!");
                    return;
                }
            }

            if (chkCerrarO.Checked == false)
            {
                if (DBFunctions.Transaction(sqlStrings))
                {
                    Response.Redirect("" + indexPage + "?process=Produccion.EntradasProduccion&path=" + Request.QueryString["path"] + "&pref=" + prefijoFacturaProveedor + "&num=" + numeroFacturaProveedor);
                }
                else
                {
                    lbInfo.Text += "<br>Error : Detalles <br>" + DBFunctions.exceptions;
                }
            }
            else
            {
                if (DBFunctions.Transaction(sqlStrings) && RealizarAjusteInventario())
                {
                    Response.Redirect("" + indexPage + "?process=Produccion.EntradasProduccion&path=" + Request.QueryString["path"] + "&pref=" + prefijoFacturaProveedor + "&num=" + numeroFacturaProveedor + "&act=1&prefA=" + ddlPrefijoAjuste.SelectedValue + "&numA=" + lblNumeroAjuste.Text);
                }
                else
                {
                    lbInfo.Text += "<br>Error : Detalles <br>" + DBFunctions.exceptions;
                }
            }
        }
Esempio n. 4
0
        public void Ejecutar(object sender, System.EventArgs e)
        {
            uint      ndrefE = 0;     //Numero Factura - Numero Factura Entrada
            DateTime  fechaProceso;
            string    vend, codigoAlmacen, ccos, carg, prefE, ano_cinv, tipoE;
            UInt64    numPre;
            ArrayList sqlStrings = new ArrayList();
            string    nit, ciudad;
            int       anoV;
            UInt32    cVIN;

            #region Validaciones
            try{
                anoV = Convert.ToInt16(txtAno.Text);
                if (Math.Abs(DateTime.Now.Year - anoV) > 5)
                {
                    throw(new Exception());
                }
            }
            catch {
                Utils.MostrarAlerta(Response, "Año no válido.");
                return;
            }
            if (dtEnsambles.Rows.Count == 0)
            {
                Utils.MostrarAlerta(Response, "No hay ensambles seleccionados.");
                return;
            }
            try{ ndrefE = Convert.ToUInt32(txtNumFacE.Text); }
            catch { Utils.MostrarAlerta(Response, "El número de entrada de almacén no es valido!"); return; }
            Utils.MostrarAlerta(Response, "El número de entrada de almacén no es valido!");
            try{
                fechaProceso = Convert.ToDateTime(tbDate.Text);
            }
            catch {
                Utils.MostrarAlerta(Response, "Fecha de proceso no es valido!");
                return;
            }
            #endregion Validaciones

            //Aqui Iniciamos el proceso como tal, habiendo superado con exito el proceso de validacion
            nit           = DBFunctions.SingleData("SELECT MNIT_NIT FROM CEMPRESA;");
            ciudad        = DBFunctions.SingleData("SELECT CEMP_CIUDAD FROM CEMPRESA;");
            vend          = ddlVendedor.SelectedValue;   //Codigo del Vendedor
            codigoAlmacen = ddlAlmacen.SelectedValue;
            ccos          = DBFunctions.SingleData("SELECT pcen_centinv FROM palmacen WHERE palm_almacen='" + codigoAlmacen + "'");
            carg          = DBFunctions.SingleData("SELECT TVEND_CODIGO FROM PVENDEDOR WHERE PVEN_CODIGO='" + vend + "'"); //Cargo???????
            prefE         = "";                                                                                            //Prefijo Documento Interno (PDOCUMENTO)
            numPre        = 0;                                                                                             //Numero de Documento Interno (PDOCUMENTO)
            ano_cinv      = ConfiguracionInventario.Ano;
            tipoE         = DBFunctions.SingleData("SELECT MORD_TIPO FROM MORDENPRODUCCION WHERE PDOC_CODIGO='" + ddlPrefOrden.SelectedValue + "' AND MORD_NUMEORDE=" + ddlNumOrden.SelectedValue + ";");
            sqlStrings    = new ArrayList();

            #region Factura Proveedor
            ArrayList        arrRecepciones          = new ArrayList();
            FacturaProveedor facturaRepuestos        = new FacturaProveedor();
            string           prefijoFacturaProveedor = ddlPrefE.SelectedValue;
            UInt64           numeroFacturaProveedor  = Convert.ToUInt64(txtNumFacE.Text.Trim());
            prefE  = prefijoFacturaProveedor;
            numPre = numeroFacturaProveedor;

            if (DBFunctions.RecordExist("SELECT * FROM mfacturaproveedor WHERE pdoc_codiordepago='" + prefijoFacturaProveedor + "' AND mfac_numeordepago=" + numeroFacturaProveedor + ""))
            {
                numeroFacturaProveedor = Convert.ToUInt32(DBFunctions.SingleData("SELECT pdoc_ultidocu+1 FROM pdocumento WHERE pdoc_codigo='" + prefijoFacturaProveedor + "'"));
            }

            FacturaProveedor facturaRepuestosProv = new FacturaProveedor("FPR", prefijoFacturaProveedor,
                                                                         ddlPrefOrden.SelectedValue, nit, ddlAlmacen.SelectedValue, "F", numeroFacturaProveedor,
                                                                         Convert.ToUInt64(ddlNumOrden.SelectedValue), "V", fechaProceso,
                                                                         fechaProceso.AddDays(0),
                                                                         Convert.ToDateTime(null), fechaProceso, 0,
                                                                         0, 0, 0, 0, txtObs.Text,
                                                                         HttpContext.Current.User.Identity.Name.ToLower());

            facturaRepuestosProv.GrabarFacturaProveedor(false);
            numPre = facturaRepuestosProv.NumeroFactura;

            for (int i = 0; i < facturaRepuestosProv.SqlStrings.Count; i++)
            {
                sqlStrings.Add(facturaRepuestosProv.SqlStrings[i].ToString());
            }
            #endregion Factura Proveedor

            #region Retenciones
            DataTable dtRet = TablaRetenciones();
            dtRet.Rows[0][0]  = "1";
            dtRet.Rows[0][1]  = DBFunctions.SingleData("SELECT MITE_CODIGO FROM MITEMS WHERE TORI_CODIGO='X' FETCH FIRST 1 ROWS ONLY;");
            dtRet.Rows[0][2]  = "";
            dtRet.Rows[0][3]  = 1;
            dtRet.Rows[0][4]  = 1;
            dtRet.Rows[0][5]  = 0;
            dtRet.Rows[0][6]  = 0;
            dtRet.Rows[0][7]  = 0;
            dtRet.Rows[0][8]  = "";
            dtRet.Rows[0][9]  = 0;
            dtRet.Rows[0][10] = "";
            dtRet.Rows[0][11] = "";
            try
            {
                Retencion RetencionItems = new Retencion(facturaRepuestosProv.NitProveedor,
                                                         facturaRepuestosProv.PrefijoFactura,
                                                         Convert.ToInt32(facturaRepuestosProv.NumeroFactura),
                                                         dtRet,
                                                         (facturaRepuestosProv.ValorFactura + facturaRepuestosProv.ValorFletes),
                                                         (facturaRepuestosProv.ValorIva + facturaRepuestosProv.ValorIvaFletes),
                                                         "R", false);

                RetencionItems.Guardar_Retenciones(false);

                for (int i = 0; i < RetencionItems.Sqls.Count; i++)
                {
                    sqlStrings.Add(RetencionItems.Sqls[i].ToString());
                }
            }
            catch (Exception ex)
            {
                Utils.MostrarAlerta(Response, "Error en Retenciones. Detalles : \\n" + ex.Message + "");
                return;
            }
            #endregion

            #region Vehiculos, catalogos, detalles ordenes, pcatalogovehiculo
            bool vehiculos = false;
            for (int n = 0; n < dtEnsambles.Rows.Count; n++)
            {
                if (((CheckBox)dgEnsambles.Items[n].FindControl("chkUsarE")).Checked)
                {
                    cVIN = Convert.ToUInt32(dtEnsambles.Rows[n]["MCAT_VIN"].ToString().Substring(12));

                    //Insertar mcatalogovehiculo
                    sqlStrings.Add("INSERT INTO MCATALOGOVEHICULO VALUES (" +
                                   "'" + dtEnsambles.Rows[n]["PCAT_CODIGO"].ToString() + "'," +            //Catalogo
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," +               //VIN
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString().Substring(12) + "'," + //placa
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," +               //Motor
                                   "'" + nit + "'," +                                                      //NIT
                                   "NULL," +
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," +               //Chasis
                                   "'" + dtEnsambles.Rows[n]["PCOL_CODIGO"].ToString() + "'," +            //Color
                                   anoV + ",'A',NULL,NULL,'" + tbDate.Text + "',0,NULL,0,0,NULL,NULL,'" + tbDate.Text + "',null)");

                    //Insertar mvehiculo
                    sqlStrings.Add("INSERT INTO MVEHICULO VALUES (" +
                                   "DEFAULT," +                                              //Inventario
                                   "NULL," +                                                 //Catalogo
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," + //VIN
                                   "1," +                                                    //Estado
                                   "NULL,NULL," +                                            //Pedido
                                   "'" + nit + "'," +                                        //NIT
                                   "0," +                                                    //No recepcion
                                   "'" + tbDate.Text + "'," +                                //Fecha Recep
                                   "'" + tbDate.Text + "'," +                                //Fecha Disponb.
                                   "0," +                                                    //Kilometraje
                                   "'N'," +                                                  //Nuevo
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," + //Manifiesto
                                   "'" + tbDate.Text + "'," +                                //Fecha Manifiesto
                                   "'" + ciudad + "'," +                                     //Aduana
                                   "NULL," +                                                 //Version
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," + //No Levante
                                   "NULL,NULL," +                                            //Vr Gastos, Inflacion
                                   "'P'," +                                                  //Tipo de compra
                                   "NULL,NULL," +                                            //Orden de pago
                                   "0," +                                                    //Valor compra a proveedor
                                   "NULL," +                                                 //Fecha entrega
                                   "'" + nit + "'," +                                        //NIT Proveedor
                                   "NULL,NULL" +                                             //Prenda,IVA
                                   ");");

                    //Actualizar pcatalogovehiculo
                    sqlStrings.Add("update pcatalogovehiculo " +
                                   "set pcat_consecutivo=" + cVIN + " " +
                                   "WHERE PCAT_CODIGO='" + dtEnsambles.Rows[n]["PCAT_CODIGO"].ToString() + "' AND pcat_consecutivo<" + cVIN + ";");

                    //Actualizar dordenproduccion
                    sqlStrings.Add("UPDATE DORDENPRODUCCION SET " +
                                   "DORD_CANTENTR=DORD_CANTENTR+1 " +
                                   "WHERE PDOC_CODIGO='" + ddlPrefOrden.SelectedValue + "' AND " +
                                   "MORD_NUMEORDE=" + ddlNumOrden.SelectedValue + " AND " +
                                   "PCAT_CODIGO='" + dtEnsambles.Rows[n]["PCAT_CODIGO"] + "';");
                    vehiculos = true;
                }
            }
            if (!vehiculos)
            {
                Utils.MostrarAlerta(Response, "No seleccionó ningún elemento.");
                return;
            }
            #endregion

            #region Orden Produccion
            //cerrar mordenproduccion si se recibieron todos los items
            sqlStrings.Add(
                "UPDATE MORDENPRODUCCION MO SET MO.TEST_ESTADO='F' " +
                "WHERE MO.pdoc_codigo='" + ddlPrefOrden.SelectedValue + "' AND mord_numeorde=" + ddlNumOrden.SelectedValue + " AND " +
                "NOT EXISTS(" +
                " SELECT * FROM DORDENPRODUCCION DOR " +
                " WHERE " +
                " DOR.pdoc_codigo=MO.pdoc_codigo AND DOR.mord_numeorde=MO.mord_numeorde AND " +
                " DOR.DORD_CANTXPROD>DORD_CANTENTR " +
                ");");
            #endregion

            if (DBFunctions.Transaction(sqlStrings))
            {
                Response.Redirect("" + indexPage + "?process=Produccion.EntradasEnsambles&path=" + Request.QueryString["path"] + "&pref=" + prefijoFacturaProveedor + "&num=" + numeroFacturaProveedor);
            }
            else
            {
                lbInfo.Text += "<br>Error : Detalles <br>" + DBFunctions.exceptions;
            }
        }
Esempio n. 5
0
        //Funcion para facturar un vehiculo ya recibido
        public bool Facturar_Vehiculo_Recibido(string catalogoVehiculo, string vinVehiculo)
        {
            int i;

            sqlStrings = new ArrayList();
            bool             status          = false;
            FacturaProveedor facturaVehiculo = new FacturaProveedor("FPR", prefijoOrdenPago, prefijoFacturaProveedor, nitProveedor, Almacen, "F", Convert.ToUInt64(numeroOrdenPago), Convert.ToUInt64(numeroFacturaProveedor),
                                                                    //0			1					2						3			4		5		6										7
                                                                    estadoFacturaProveedor, Convert.ToDateTime(fechaFactura), Convert.ToDateTime(fechaVencimiento), Convert.ToDateTime(null), Convert.ToDateTime(fechaIngreso),
                                                                    //8									9											10							11
                                                                    Convert.ToDouble(valorFactura), Convert.ToDouble(valorIva), Convert.ToDouble(valorFletes), Convert.ToDouble(valorIvaFletes), Convert.ToDouble(valorRetencion),
                                                                    //12								13								14							15								16
                                                                    observacion, usuario);

            //17			18
            facturaVehiculo.GrabarFacturaProveedor(false);
            numeroOrdenPago = facturaVehiculo.NumeroFactura.ToString();
            for (i = 0; i < facturaVehiculo.SqlStrings.Count; i++)
            {
                sqlStrings.Add(facturaVehiculo.SqlStrings[i].ToString());
            }

            //Cálculo de retenciones
            RetencionVehiculos = new Retencion(facturaVehiculo.NitProveedor, facturaVehiculo.PrefijoFactura,
                                               Convert.ToInt32(facturaVehiculo.NumeroFactura), (Convert.ToDouble(valorFactura) + Convert.ToDouble(valorFletes)),
                                               (Convert.ToDouble(valorIva) + Convert.ToDouble(valorIvaFletes)), "V", false);

            if (dtRetenciones == null)
            {
                RetencionVehiculos.Guardar_Retenciones(false);
            }
            else
            {
                RetencionVehiculos.Guardar_Retenciones(false, dtRetenciones);
            }

            for (i = 0; i < RetencionVehiculos.Sqls.Count; i++)
            {
                sqlStrings.Add(RetencionVehiculos.Sqls[i].ToString());
            }

            //Ahora debemos actualizar el registro de mvehiculo y asociarlo a la factura del proveedor
            //Si el vehiculo esta facturado o asignado no se modifica el estado del vehiculo.
            string estadoVehiculo = DBFunctions.SingleData("SELECT test_tipoesta FROM dbxschema.mvehiculo WHERE mcat_vin='" + vinVehiculo + "' order by mveh_inventario desc FETCH FIRST 1 ROWS ONLY;");
            Int32  numeroVehiculo = Convert.ToInt32(DBFunctions.SingleData("SELECT coalesce(mveh_inventario,0) FROM dbxschema.mvehiculo WHERE mcat_vin='" + vinVehiculo + "' order by mveh_inventario desc FETCH FIRST 1 ROWS ONLY;"));

            if (estadoVehiculo == "10")
            {
                sqlStrings.Add("UPDATE mvehiculo SET pdoc_codiordepago='" + prefijoOrdenPago + "', mfac_numeordepago=" + numeroOrdenPago + ", mveh_valocomp=" + valorFactura + ", MVEH_VALOIVA=" + valorIva + ", test_tipoesta=20 WHERE mveh_inventario = " + numeroVehiculo + " ");
            }
            else
            {
                sqlStrings.Add("UPDATE mvehiculo SET pdoc_codiordepago='" + prefijoOrdenPago + "', mfac_numeordepago=" + numeroOrdenPago + ", mveh_valocomp=" + valorFactura + ", MVEH_VALOIVA=" + valorIva + " WHERE mveh_inventario = " + numeroVehiculo + " ");
            }

            //Ahora Actualizamos el consecutivo
            if (DBFunctions.Transaction(sqlStrings))
            {
                status      = true;
                processMsg += DBFunctions.exceptions + "<br>";
            }
            else
            {
                processMsg += "Error: " + DBFunctions.exceptions + "<br><br>";
            }
            return(status);
        }
Esempio n. 6
0
        //factura por vehículo(Facturación Excel)
        public bool Realizar_Recepcion_Excel(bool factura, bool grabar)
        {
            sqlStrings = new ArrayList();

            bool status = false;
            int  i;
            //Se cambia por el primer NIT del proceso.
            String nitSeleccionado = nitProveedor2;

            if (nitProveedor2 == "" || nitProveedor2 == null)
            {
                nitSeleccionado = nitProveedor;
            }
            if (factura)
            {
                FacturaProveedor facturaRepuestos = new FacturaProveedor("FPR", prefijoOrdenPago, prefijoFacturaProveedor, nitProveedor, Almacen, "F", Convert.ToUInt64(numeroOrdenPago), Convert.ToUInt64(numeroFacturaProveedor),
                                                                         //0			1					2						3			4		5		6										7
                                                                         estadoFacturaProveedor, Convert.ToDateTime(fechaFactura), Convert.ToDateTime(fechaVencimiento), Convert.ToDateTime(null), Convert.ToDateTime(fechaIngreso),
                                                                         //8									9											10							11
                                                                         Convert.ToDouble(valorFactura), Convert.ToDouble(valorIva), Convert.ToDouble(valorFletes), Convert.ToDouble(valorIvaFletes), Convert.ToDouble(valorRetencion),
                                                                         //12								13								14							15								16
                                                                         observacion, usuario);
                //17		    18
                if (valorAbono != null && valorAbono != "")
                {
                    facturaRepuestos.ValorAbonos = Convert.ToDouble(valorAbono);
                }
                facturaRepuestos.GrabarFacturaProveedorExcel(false);
                numeroOrdenPago = facturaRepuestos.NumeroFactura.ToString();
                for (i = 0; i < facturaRepuestos.SqlStrings.Count; i++)
                {
                    sqlStrings.Add(facturaRepuestos.SqlStrings[i].ToString());
                }
                //Cálculo de retenciones

                RetencionVehiculos = new Retencion(nitProveedor2, facturaRepuestos.PrefijoFactura,
                                                   Convert.ToInt32(facturaRepuestos.NumeroFactura), (Convert.ToDouble(valorFactura) + Convert.ToDouble(valorFletes)),
                                                   (Convert.ToDouble(valorIva) + Convert.ToDouble(valorIvaFletes)), "V", false);
                //if (dtRetenciones == null)
                RetencionVehiculos.Guardar_Retenciones(false);
            }
            if (!DBFunctions.RecordExist("SELECT * FROM mcatalogovehiculo WHERE mcat_vin='" + drInformacionTecnica[1] + "' "))
            {
                sqlStrings.Add("INSERT INTO mcatalogovehiculo VALUES('" + drInformacionTecnica[0] + "','" + drInformacionTecnica[1] + "','" + drInformacionTecnica[8] + "','" + drInformacionTecnica[2] + "','" + DBFunctions.SingleData("SELECT mnit_nit FROM cempresa") + "','" + drInformacionTecnica[3] + "','" + drInformacionTecnica[4] + "','" + drInformacionTecnica[5] + "'," + drInformacionTecnica[6] + ",'" + drInformacionTecnica[7] + "',null,null,'" + DateTime.Now.ToString("yyyy-MM-dd") + "',0,null,0,1000,null,null,'" + DateTime.Now.ToString("yyyy-MM-dd") + "',null)");
            }

            //Ahora Agregamos EL REGISTRO A MVEHICULO
            string nitPropietario = DBFunctions.SingleData("SELECT mnit_nit FROM cempresa");

            //string i = drInformacionComercial[1];
            if (drInformacionComercial[13].ToString() != "P")
            {
                nitPropietario = nitProveedor;  // En las Consignaciones o Retomas de Vehiculos, se deja el nit del proveedor como propietario
            }
            if (factura)
            {
                sqlStrings.Add("INSERT INTO mvehiculo (MVEH_INVENTARIO,PVEN_MERCADEISTA,MCAT_VIN,TEST_TIPOESTA,PDOC_CODIGOPEDIPROV,MPED_NUMERO,MNIT_NIT,MVEH_NUMERECE,MVEH_FECHRECE,MVEH_FECHDISP,MVEH_KILOMETR,TCLA_CODIGO,MVEH_NUMEMANI,MVEH_FECHMANI,MVEH_ADUANA,MVEH_NUMED_O,MVEH_NUMELEVANTE,MVEH_VALOGAST,MVEH_VALOINFL,TCOM_CODIGO,PDOC_CODIORDEPAGO,MFAC_NUMEORDEPAGO,MVEH_VALOCOMP,MVEH_FECHENTR,MPRO_NIT,MVEH_PRENDA,MVEH_VALOIVA) VALUES("
                               + drInformacionComercial[0] + ",null,'" + drInformacionComercial[2] + "',20,'null',null,'" + nitPropietario + "'," + drInformacionComercial[3] + ",'" + drInformacionTecnica[9] + "','" + drInformacionComercial[5] + "'," + drInformacionComercial[6] + ",'" + drInformacionComercial[7] + "','" + drInformacionComercial[8] + "','" + drInformacionComercial[9] + "','" + drInformacionComercial[10] + "','" + drInformacionComercial[11] + "','" + drInformacionComercial[12] + "',0,0,'" + drInformacionComercial[13] + "','" + prefijoOrdenPago + "'," + numeroOrdenPago + "," + drInformacionComercial[14] + ",null,'" + nitSeleccionado + "',null," + valorIva + ")");

                //sqlStrings.Add("INSERT INTO mvehiculo VALUES(" + tbInformacionComercial.Rows[i][0].ToString() + ",null,'" + tbInformacionComercial.Rows[i][2].ToString() + "',20,'" + prefijoPedido + "'," + numeroPedido + ",'" + nitPropietario + "'," + tbInformacionComercial.Rows[i][3].ToString() + ",'" + tbInformacionComercial.Rows[i][4].ToString() + "','" + tbInformacionComercial.Rows[i][5].ToString() + "'," + tbInformacionComercial.Rows[i][6].ToString() + ",'" + tbInformacionComercial.Rows[i][7].ToString() + "','" + tbInformacionComercial.Rows[i][8].ToString() + "','" + tbInformacionComercial.Rows[i][9].ToString() + "','" + tbInformacionComercial.Rows[i][10].ToString() + "','" + tbInformacionComercial.Rows[i][11].ToString() + "','" + tbInformacionComercial.Rows[i][12].ToString() + "',0,0,'" + tbInformacionComercial.Rows[i][13].ToString() + "','" + prefijoOrdenPago + "'," + numeroOrdenPago + "," + tbInformacionComercial.Rows[i][14].ToString() + ",null,'" + nitProveedor + "',null," + valorIva + ")");
                sqlStrings.Add("UPDATE dpedidovehiculoproveedor SET dped_cantingr = dped_cantingr + 1 WHERE pdoc_codigo='" + this.prefijoPedido + "' AND mped_numepedi=" + this.numeroPedido + " AND pcat_codigo='" + drInformacionComercial[1] + "'");

                //Ahora creamos el registro en la tabla mubicacionvehiculo
                sqlStrings.Add("INSERT INTO mubicacionvehiculo VALUES(default,'" + drInformacionComercial[1] + "','" + drInformacionComercial[2] + "','" + this.ubicacion + "','" + DateTime.Now.ToString("yyyy-MM-dd") + "',null,null,null,null)");
            }

            for (i = 0; i < sqlRels.Count; i++)
            {
                sqlStrings.Add(sqlRels[i].ToString());
            }
            if (grabar)
            {
                if (DBFunctions.Transaction(sqlStrings))
                {
                    status      = true;
                    processMsg += DBFunctions.exceptions + "<br>";
                }
                else
                {
                    processMsg += "Error" + DBFunctions.exceptions + "<br><br>";
                }
            }
            else
            {
                status = true;
            }
            return(status);
        }