Пример #1
0
        //Autorizar
        public string Autorizar(ref string strFormatos)
        {
            ArrayList arrSql           = new ArrayList();
            string    estado           = (autorizar == "N")?"F":"A";
            double    valorTransSinIva = 0;

            idGarantia = "";
            arrSql.Add("INSERT INTO MGARANTIAAUTORIZACION VALUES(" +
                       "DEFAULT,'" + prefOrden + "'," + numOrden + ",'" + fechaProceso.ToString("yyyy-MM-dd") + "','" +
                       nitConcesionario + "','" + personaSolicita + "','" + vendedor + "','" + autorizar + "','" + VIN + "','" +
                       observacionG + "','" + observacionR + "');");
            arrSql.Add("UPDATE MORDENPOSTVENTA SET MGAR_NUMERO=IDENTITY_VAL_LOCAL() " +
                       "WHERE PDOC_CODIGO='" + prefOrden + "' AND MORD_NUMEORDE=" + numOrden + ";");
            if (autorizar == "N")
            {
                arrSql.Add("UPDATE MORDEN SET TEST_ESTADO='F' " +
                           "WHERE PDOC_CODIGO='" + prefOrden + "' AND MORD_NUMEORDE=" + numOrden + ";");
            }
            string estadoA = "";
            double valA = 0, valM = 0;

            for (int i = 0; i < dtOperaciones.Rows.Count; i++)
            {
                if (Convert.ToInt16(dtOperaciones.Rows[i]["usar"]) == 1)
                {
                    estadoA = "C";
                }
                else
                {
                    estadoA = "X";
                }
                if (autorizar == "N")
                {
                    estadoA = "X";
                }
                arrSql.Add("UPDATE dordenoperacion SET TEST_ESTADO='" + estadoA + "' " +
                           "WHERE PDOC_CODIGO='" + dtOperaciones.Rows[i]["PDOC_CODIGO"].ToString() + "' AND MORD_NUMEORDE=" + dtOperaciones.Rows[i]["MORD_NUMEORDE"].ToString() + " AND PTEM_OPERACION='" + dtOperaciones.Rows[i]["PTEM_OPERACION"].ToString() + "';");
            }
            for (int i = 0; i < dtRepuestos.Rows.Count; i++)
            {
                valM = Convert.ToDouble(dtRepuestos.Rows[i]["precio"]) * Convert.ToDouble(dtRepuestos.Rows[i]["cantidad"]);
                valA = Convert.ToDouble(dtRepuestos.Rows[i]["valaprueba"]);
                if (autorizar == "N")
                {
                    valA = 0;
                }
                if (valA == 0)
                {
                    estadoA = "X";
                }
                else
                {
                    if (valA == valM)
                    {
                        estadoA           = "C";
                        valorTransSinIva += valM;
                    }
                    else
                    {
                        estadoA = "P";
                    }
                }
                arrSql.Add("UPDATE dordenitemspostventa SET TEST_ESTADO='" + estadoA + "', MITE_VALAPROB = " + valA + " " +
                           "WHERE PDOC_CODIGO='" + dtRepuestos.Rows[i]["PDOC_CODIGO"].ToString() + "' AND MORD_NUMEORDE=" + dtRepuestos.Rows[i]["MORD_NUMEORDE"].ToString() + " AND MITE_CODIGO='" + dtRepuestos.Rows[i]["MITE_CODIGO"].ToString() + "';");
            }
            if (autorizar != "N" && valorTransSinIva > 0)
            {
                DataSet dsPostventa = new DataSet();
                DBFunctions.Request(dsPostventa, IncludeSchema.NO, "SELECT * FROM CPOSTVENTA;");
                DataRow  drPostventa  = dsPostventa.Tables[0].Rows[0];
                DateTime fechaEntrada = Convert.ToDateTime(DBFunctions.SingleData("SELECT mord_entrada from morden where PDOC_CODIGO='" + prefOrden + "' and MORD_NUMEORDE=" + numOrden + ";"));
                uint     numeroPedido = Convert.ToUInt32(DBFunctions.SingleData("SELECT pped_ultipedi + 1 FROM ppedido WHERE pped_codigo='" + drPostventa["PPED_CODIGO"].ToString() + "'"));
                while (DBFunctions.RecordExist("SELECT * FROM mpedidoitem WHERE pped_codigo='" + drPostventa["PPED_CODIGO"].ToString() + "' AND mped_numepedi=" + numeroPedido + ""))
                {
                    numeroPedido += 1;
                }
                uint numeroDocumentoTransferencia = Convert.ToUInt32(DBFunctions.SingleData("SELECT pdoc_ultidocu+1 FROM pdocumento WHERE pdoc_codigo='" + drPostventa["PDOC_CODITRANS"].ToString() + "'"));
                while (DBFunctions.RecordExist("SELECT * FROM mfacturacliente WHERE pdoc_codigo='" + drPostventa["PDOC_CODITRANS"].ToString() + "' AND mfac_numedocu=" + numeroDocumentoTransferencia + ""))
                {
                    numeroDocumentoTransferencia += 1;
                }
                PedidoFactura miPedido = new PedidoFactura("T", drPostventa["PPED_CODIGO"].ToString(), drPostventa["MNIT_NITTRANS"].ToString(), drPostventa["PALM_ALMACENTRANS"].ToString(), numeroPedido, prefOrden, numOrden, "C", fechaEntrada, observacionR, 0, new String[0], vendedor, drPostventa["PDOC_CODITRANS"].ToString(), numeroDocumentoTransferencia, "G", 0, 0, valorTransSinIva, valorTransSinIva);
                for (int i = 0; i < dtRepuestos.Rows.Count; i++)
                {
                    valM = Convert.ToDouble(dtRepuestos.Rows[i]["precio"]) * Convert.ToDouble(dtRepuestos.Rows[i]["cantidad"]);
                    valA = Convert.ToDouble(dtRepuestos.Rows[i]["valaprueba"]);
                    if (valA > 0 && valA == valM)
                    {
                        miPedido.InsertaFila(dtRepuestos.Rows[i]["mite_codigo"].ToString(), Convert.ToDouble(dtRepuestos.Rows[i]["cantidad"]), Convert.ToDouble(dtRepuestos.Rows[i]["precio"]), 0, 0, Convert.ToDouble(dtRepuestos.Rows[i]["cantidad"]), "", "");
                    }
                }
                miPedido.RealizarPedFac(false);
                for (int j = 0; j < miPedido.SqlStrings.Count; j++)
                {
                    arrSql.Add(miPedido.SqlStrings[j].ToString());
                }
                strFormatos += "&tipoPED=" + drPostventa["PPED_CODIGO"].ToString() + "&numPED=" + numeroPedido;
                strFormatos += "&prefTRA=" + drPostventa["PDOC_CODITRANS"].ToString() + "&numTRA=" + numeroDocumentoTransferencia;
            }
            if (DBFunctions.Transaction(arrSql))
            {
                idGarantia = DBFunctions.SingleData("SELECT MAX(MGAR_NUMERO) FROM MGARANTIAAUTORIZACION;");
                return("");
            }
            else
            {
                return(DBFunctions.exceptions);
            }
        }