Beispiel #1
0
 private void BtnAnular_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("¿Seguro que desea anular la guia de transporte Nro: " + TxtNumGuiatransporte.Text + ".?", "Guia de remisión", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
     {
         CL_GuiaRemision objCL_GuiaRemision = new CL_GuiaRemision();
         bool            Valor;
         Valor = objCL_GuiaRemision.UpdateGuiaRemisionEstado(TxtGuia.Text, 10, "T", AppSettings.UserID, AppSettings.SedeID);
     }
 }
Beispiel #2
0
        private void CrearGuias()
        {
            #region Crear guiaremision
            E_GuiaRemision ObjGuiaRemision = new E_GuiaRemision();

            ObjGuiaRemision.EmpresaID                    = EmpresaIDUser;
            ObjGuiaRemision.NroJabas                     = Convert.ToInt16(TxtNroJabas.Value);
            ObjGuiaRemision.DesAnimal                    = TxtProducto.Value.ToString();
            ObjGuiaRemision.NroGalpon                    = 0;
            ObjGuiaRemision.DomicilioPartida             = DomicilioPartida;
            ObjGuiaRemision.NroDomicilioPartida          = NroDomicilioPartida;
            ObjGuiaRemision.InteriorDomicilioPartida     = IntDomicilioPartida;
            ObjGuiaRemision.ZonaDomicilioPartida         = ZonaDomicilioPartida;
            ObjGuiaRemision.DistritoDomicilioPartida     = DisDomicilioPartida;
            ObjGuiaRemision.ProvinciaDomicilioPartida    = ProvDomicilioPartida;
            ObjGuiaRemision.DepartamentoDomicilioPartida = DepDomicilioPartida;
            ObjGuiaRemision.DomicilioLlegada             = CboSedeDestino.Columns["NomSede"].Value.ToString();

            if (CboSedeDestino.Columns["Numero"].Value == DBNull.Value)
            {
                ObjGuiaRemision.NroDomicilioLlegada = 0;
            }
            else
            {
                ObjGuiaRemision.NroDomicilioLlegada = Convert.ToInt16(CboSedeDestino.Columns["Numero"].Value);
            }

            if (CboSedeDestino.Columns["Interior"].Value == DBNull.Value)
            {
                ObjGuiaRemision.IntDomicilioLlegada = 0;
            }
            else
            {
                ObjGuiaRemision.IntDomicilioLlegada = Convert.ToInt16(CboSedeDestino.Columns["Interior"].Value);
            }

            ObjGuiaRemision.ZonaDomicilioLlegada    = CboSedeDestino.Columns["Zona"].Value.ToString();
            ObjGuiaRemision.DisDomicilioLlegada     = CboSedeDestino.Columns["Distrito"].Value.ToString();
            ObjGuiaRemision.ProvDomicilioLlegada    = CboSedeDestino.Columns["Provincia"].Value.ToString();
            ObjGuiaRemision.DepDomicilioLlegada     = CboSedeDestino.Columns["Departamento"].Value.ToString();
            ObjGuiaRemision.Destinatario            = AppSettings.NomEmpresa;
            ObjGuiaRemision.RUCDestinatario         = AppSettings.RUCEmpresa;
            ObjGuiaRemision.DireccionDestinatario   = CboSedeDestino.Columns["NomSede"].Value.ToString();
            ObjGuiaRemision.ObservacionDestinatario = null;
            ObjGuiaRemision.Marca                  = TxtMarca.Value.ToString();
            ObjGuiaRemision.Placa                  = TxtPlaca.Value.ToString();
            ObjGuiaRemision.Carrosa                = TxtCarrosa.Text;
            ObjGuiaRemision.NombreChofer           = NomTransportista;
            ObjGuiaRemision.DNIChofer              = TxtDNITransportista.Value.ToString();
            ObjGuiaRemision.FechaSalida            = Convert.ToDateTime(DeFechaSalida.Value.ToString());
            ObjGuiaRemision.ConfiguracionVehicular = TxtConfVehicular.Value.ToString();
            if (TxtNroConstInscripcion.Text == "")
            {
                ObjGuiaRemision.NroConstInscripcion = 0;
            }
            else
            {
                ObjGuiaRemision.NroConstInscripcion = Convert.ToInt32(TxtNroConstInscripcion.Value);
            }
            ObjGuiaRemision.NroLicTransportista = TxtNroLicTransaportista.Value.ToString();
            ObjGuiaRemision.NroFactura          = "";
            ObjGuiaRemision.Pesador             = Pesador;
            ObjGuiaRemision.Galponero           = Galponero;
            ObjGuiaRemision.UsuarioID           = AppSettings.UserID;
            #endregion

            #region Crear GuiaTransportista
            //se crea guia de transportista si solo si el camion no pertenece a la empresa de destino
            E_GuiaTransporte ObjGuiaTransporte = new E_GuiaTransporte();
            if ((EmpresaIDUser != CamionEmpresaID) && CamionEmpresaID != "EX")
            {
                ObjGuiaTransporte.EmpresaID            = CamionEmpresaID;
                ObjGuiaTransporte.NumGuiaRemision      = NumGuiaRemision;
                ObjGuiaTransporte.DomicilioPartida     = DomicilioPartida;
                ObjGuiaTransporte.NroDomicilioPartida  = NroDomicilioPartida;
                ObjGuiaTransporte.IntDomicilioPartida  = IntDomicilioPartida;
                ObjGuiaTransporte.ZonaDomicilioPartida = ZonaDomicilioPartida;
                ObjGuiaTransporte.DisDomicilioPartida  = DisDomicilioPartida;
                ObjGuiaTransporte.ProvDomicilioPartida = ProvDomicilioPartida;
                ObjGuiaTransporte.DepDomicilioPartida  = DepDomicilioPartida;
                ObjGuiaTransporte.DomicilioLlegada     = CboSedeDestino.Columns["NomSede"].Value.ToString();

                if (CboSedeDestino.Columns["Numero"].Value == DBNull.Value)
                {
                    ObjGuiaTransporte.NroDomicilioLlegada = 0;
                }
                else
                {
                    ObjGuiaTransporte.NroDomicilioLlegada = Convert.ToInt16(CboSedeDestino.Columns["Numero"].Value);
                }

                if (CboSedeDestino.Columns["Interior"].Value == DBNull.Value)
                {
                    ObjGuiaTransporte.IntDomicilioLlegada = 0;
                }
                else
                {
                    ObjGuiaTransporte.IntDomicilioLlegada = Convert.ToInt16(CboSedeDestino.Columns["Interior"].Value);
                }

                ObjGuiaTransporte.ZonaDomicilioLlegada    = CboSedeDestino.Columns["Zona"].Value.ToString();
                ObjGuiaTransporte.DisDomicilioLlegada     = CboSedeDestino.Columns["Distrito"].Value.ToString();
                ObjGuiaTransporte.ProvDomicilioLlegada    = CboSedeDestino.Columns["Provincia"].Value.ToString();
                ObjGuiaTransporte.DepDomicilioLlegada     = CboSedeDestino.Columns["Departamento"].Value.ToString();
                ObjGuiaTransporte.Remitente               = AppSettings.NomEmpresa;
                ObjGuiaTransporte.RUCRemitente            = AppSettings.RUCEmpresa;
                ObjGuiaTransporte.DireccionRemitente      = DomicilioPartida;
                ObjGuiaTransporte.ObservacionRemitente    = null;
                ObjGuiaTransporte.Destinatario            = AppSettings.NomEmpresa;
                ObjGuiaTransporte.RUCDestinatario         = AppSettings.RUCEmpresa;
                ObjGuiaTransporte.DireccionDestinatario   = CboSedeDestino.Columns["NomSede"].Value.ToString();
                ObjGuiaTransporte.ObservacionDestinatario = null;
                ObjGuiaTransporte.Marca                  = CboVehiculo.SelectedText;
                ObjGuiaTransporte.Placa                  = TxtPlaca.Value.ToString();
                ObjGuiaTransporte.Carrosa                = TxtCarrosa.Text;
                ObjGuiaTransporte.NombreChofer           = NomTransportista;
                ObjGuiaTransporte.DNIChofer              = TxtDNITransportista.Value.ToString();
                ObjGuiaTransporte.FechaSalida            = Convert.ToDateTime(DeFechaSalida.Value);
                ObjGuiaTransporte.ConfiguracionVehicular = TxtConfVehicular.Value.ToString();
                if (TxtNroConstInscripcion.Value.ToString() == "")
                {
                    ObjGuiaTransporte.NroConstInscripcion = 0;
                }
                else
                {
                    ObjGuiaTransporte.NroConstInscripcion = Convert.ToInt32(TxtNroConstInscripcion.Value);
                }

                ObjGuiaTransporte.NroLicTransportista = TxtNroLicTransaportista.Value.ToString();
                ObjGuiaTransporte.UsuarioID           = AppSettings.UserID;
            }
            #endregion

            #region Acumular los totales de las guias
            NetoTotal     += Neto;
            TaraTotal     += Tara;
            BrutoTotal    += Bruto;
            NroJabasTotal += NroJabas;
            Cantidad      += Cantidad;
            #endregion

            //obtener peso total
            PesoTotal += Convert.ToDecimal(TxtBruto.Text);

            DataSet Ds = new DataSet();
            Ds = new CL_GuiaRemision().CrearGuias(DtPesoBruto, DtTara, Convert.ToDecimal(TxtBruto.Text), ObjGuiaRemision, AppSettings.SedeID, CamionEmpresaID,
                                                  TxtCodigo.Text, TxtRequerimiento.Text, Convert.ToDecimal(TxtNeto.Text), Convert.ToDecimal(TxtTara.Text),
                                                  Convert.ToDecimal(TxtCantidad.Text), Convert.ToDecimal(TxtRecibido.Text), Convert.ToDecimal(TxtSolicitado.Text),
                                                  Convert.ToDecimal(TxtTransito.Text), Convert.ToDecimal(TxtNroJabas.Text), CboSedeDestino.Columns["NomSede"].Value.ToString(),
                                                  AlmacenIDLocal, ObjGuiaTransporte, CboSedeDestino.SelectedValue.ToString(), AppSettings.UserID);

            #region mostrar en grilla
            //extraer los registros de la tabla
            if (Ds.Tables["DtGuias"].Rows.Count > 0)
            {
                foreach (DataRow Row in Ds.Tables["DtGuias"].Rows)
                {
                    DtGuias.ImportRow(Row);
                }
            }


            TbDespachoPollo.SelectedIndex = 2;
            TdgGuias.SetDataBinding(DtGuias, "", true);
            #endregion
        }
Beispiel #3
0
        private void MostrarGuia(string NumGuia)
        {
            #region Limpiar
            //Recorremos todos los textos y los limpiamos

            foreach (Control ctrl in this.Controls)
            {
                if (ctrl is C1.Win.C1Input.C1TextBox)
                {
                    C1.Win.C1Input.C1TextBox t = ctrl as C1.Win.C1Input.C1TextBox;
                    t.Text = "";
                }
                else if (ctrl is ToolStripContainer)
                {
                    foreach (Control c in ctrl.Controls)
                    {
                        if (c is ToolStripContentPanel)
                        {
                            foreach (Control d in c.Controls)
                            {
                                if (d is C1.Win.C1Input.C1TextBox)
                                {
                                    C1.Win.C1Input.C1TextBox t = d as C1.Win.C1Input.C1TextBox;
                                    t.Text = "";
                                }
                            }
                        }
                    }
                }
            }

            //Limpiar listas
            LstTara1.Items.Clear();
            LstTara2.Items.Clear();
            LstTara3.Items.Clear();
            LstTara4.Items.Clear();
            LstBruto1.Items.Clear();
            LstBruto2.Items.Clear();
            LstBruto3.Items.Clear();
            LstBruto4.Items.Clear();
            LstBruto5.Items.Clear();
            LstBruto6.Items.Clear();

            //label que muestra el estado
            LblEstado.Text      = "";
            LblEstado.ForeColor = Color.Blue;
            BtnAnular.Visible   = false;
            #endregion

            #region Cabecera
            CL_GuiaRemision ObjCL_GuiaRemision = new CL_GuiaRemision();
            DtCabecera    = new DataTable();
            DtDetalle     = new DataTable();
            DtDetallePeso = new DataTable();

            DtCabecera = ObjCL_GuiaRemision.GetCabeceraGuiaRemision(NumGuia);



            if (DtCabecera.Rows.Count > 0)
            {
                DtDetalle     = ObjCL_GuiaRemision.GetDetalleGuiaRemision(NumGuia, "D");
                DtDetallePeso = ObjCL_GuiaRemision.GetDetalleGuiaRemisionPeso(NumGuia);

                TxtEmpresa.Text              = AppSettings.NomEmpresa;
                LblDireccion.Text            = AppSettings.NomSede;
                TxtFechaEmision.Text         = DateTime.Now.Date.ToString();
                TxtRuc.Text                  = AppSettings.RUCEmpresa;
                TxtNumGuiaRemision.Text      = DtCabecera.Rows[0]["NumGuiaRemision"].ToString().Substring(2);
                TxtFechaInicioTraslado.Text  = DtCabecera.Rows[0]["FechaSalida"].ToString();
                TxtDomicilioPartida.Text     = DtCabecera.Rows[0]["DomicilioPartida"].ToString();
                TxtNroDomicilioPartida.Text  = DtCabecera.Rows[0]["NroDomicilioPartida"].ToString();
                TxtIntDomicilioPartida.Text  = DtCabecera.Rows[0]["InteriorDomicilioPartida"].ToString();
                TxtZonaDomicilioPartida.Text = DtCabecera.Rows[0]["ZonaDomicilioPartida"].ToString();
                TxtDisDomicilioPartida.Text  = DtCabecera.Rows[0]["DistritoDomicilioPartida"].ToString();
                TxtProvDomicilioPartida.Text = DtCabecera.Rows[0]["ProvinciaDomicilioPartida"].ToString();
                TxtDepDomicilioPartida.Text  = DtCabecera.Rows[0]["DepartamentoDomicilioPartida"].ToString();
                TxtDomicilioLlegada.Text     = DtCabecera.Rows[0]["DomicilioLlegada"].ToString();
                TxtNroDomicilioLlegada.Text  = DtCabecera.Rows[0]["NroDomicilioLlegada"].ToString();
                TxtIntDomicilioLlegada.Text  = DtCabecera.Rows[0]["IntDomicilioLlegada"].ToString();
                TxtZonaDomicilioLlegada.Text = DtCabecera.Rows[0]["ZonaDomicilioLlegada"].ToString();
                TxtDisDomicilioLlegada.Text  = DtCabecera.Rows[0]["DisDomicilioLlegada"].ToString();
                TxtProvDomicilioLlegada.Text = DtCabecera.Rows[0]["ProvDomicilioLlegada"].ToString();
                TxtDepDomicilioLlegada.Text  = DtCabecera.Rows[0]["DepDomicilioLlegada"].ToString();
                TxtDestinatario.Text         = DtCabecera.Rows[0]["Destinatario"].ToString();
                TxtRUCDestinatario.Text      = DtCabecera.Rows[0]["RUCDestinatario"].ToString();
                TxtConfVehicular.Text        = DtCabecera.Rows[0]["ConfiguracionVehicular"].ToString();
                TxtMarca.Text                = DtCabecera.Rows[0]["Marca"].ToString();
                TxtPlaca.Text                = DtCabecera.Rows[0]["Placa"].ToString();
                TxtNroConstInscripcion.Text  = DtCabecera.Rows[0]["NroConstInscripcion"].ToString();
                TxtNroLicTransaportista.Text = DtCabecera.Rows[0]["NroLicTransportista"].ToString();
                TxtNombreChofer.Text         = DtCabecera.Rows[0]["NombreChofer"].ToString();
                TxtNroJabas.Text             = DtCabecera.Rows[0]["NroJabas"].ToString();
                TxtPesador.Text              = DtCabecera.Rows[0]["Pesador"].ToString();
                TxtGalponero.Text            = DtCabecera.Rows[0]["Galponero"].ToString();

                //estado de la guia
                int EstadoID;
                EstadoID = Convert.ToInt16(DtCabecera.Rows[0]["EstadoID"]);

                if (EstadoID == 0)
                {
                    LblEstado.Text      = "PLANEADO";
                    LblEstado.ForeColor = Color.Blue;
                    BtnAnular.Visible   = true;
                }
                else if (EstadoID == 10)
                {
                    LblEstado.Text      = "ANULADO";
                    LblEstado.ForeColor = Color.Red;
                    BtnAnular.Visible   = false;
                }
                else if (EstadoID == 11)
                {
                    LblEstado.Text      = "CERRADO";
                    LblEstado.ForeColor = Color.Blue;
                    BtnAnular.Visible   = false;
                }
            }
            else
            {
                BtnAnular.Visible = false;
            }
            #endregion

            #region Detalles

            //mostrar los productos (en este caso solo uno)
            if (DtCabecera.Rows.Count > 0)
            {
                decimal Tara  = 0;
                decimal Neto  = 0;
                decimal Bruto = 0;
                int     Aves  = 0;
                TxtProducto.Text     = DtDetalle.Rows[0]["NomProducto"].ToString();
                Tara                 = Convert.ToDecimal(DtDetalle.Rows[0]["PesoTara"].ToString());
                Neto                 = Convert.ToDecimal(DtDetalle.Rows[0]["PesoNeto"].ToString());
                Bruto                = Neto + Tara;
                TxtNeto.Text         = Neto.ToString();
                TxtTara.Text         = Tara.ToString();
                TxtBruto.Text        = Bruto.ToString();
                Aves                 = Convert.ToInt16(DtDetalle.Rows[0]["CantidadEnviada"]);
                TxtAves.Text         = Aves.ToString();
                TxtPesoPromedio.Text = (Neto / Aves).ToString("#,##0.00");

                DtTara = new DataTable();
                DtTara.Columns.Add("Peso", typeof(decimal));
                DtBruto = new DataTable();
                DtBruto.Columns.Add("Peso", typeof(decimal));

                foreach (DataRow Row in DtDetallePeso.Rows)
                {
                    string  Tipo = Row["Tipo"].ToString();
                    decimal Peso = Convert.ToDecimal(Row["Peso"]);

                    if (Tipo == "T")
                    {
                        DataRow RowT = DtTara.NewRow();
                        RowT["Peso"] = Peso;
                        DtTara.Rows.Add(RowT);
                    }
                    else
                    {
                        DataRow RowB = DtBruto.NewRow();
                        RowB["Peso"] = Peso;
                        DtBruto.Rows.Add(RowB);
                    }
                }

                //llenar listas de tara
                int y = 0;
                foreach (DataRow Dr in DtTara.Rows)
                {
                    y++;
                    switch (y)
                    {
                    case 1:
                        LstTara1.Items.Add(Dr["Peso"]);
                        break;

                    case 2:
                        LstTara2.Items.Add(Dr["Peso"]);
                        break;

                    case 3:
                        LstTara3.Items.Add(Dr["Peso"]);
                        break;

                    case 4:
                        LstTara4.Items.Add(Dr["Peso"]);
                        y = 0;
                        break;
                    }
                }

                //llenar listas de peso bruto
                int j = 0;
                foreach (DataRow Dr in DtBruto.Rows)
                {
                    j++;
                    switch (j)
                    {
                    case 1:
                        LstBruto1.Items.Add(Dr["Peso"]);
                        break;

                    case 2:
                        LstBruto2.Items.Add(Dr["Peso"]);
                        break;

                    case 3:
                        LstBruto3.Items.Add(Dr["Peso"]);
                        break;

                    case 4:
                        LstBruto4.Items.Add(Dr["Peso"]);
                        break;

                    case 5:
                        LstBruto5.Items.Add(Dr["Peso"]);
                        break;

                    case 6:
                        LstBruto6.Items.Add(Dr["Peso"]);
                        j = 0;
                        break;
                    }
                }
            }
            #endregion
        }
Beispiel #4
0
        private void BtnAnular_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Seguro que desea anular la guia de remisión Nro: " + TxtNumGuiaRemision.Text + ".?", "Guia de remisión", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                //****************************** anular guia *****************************************

                #region Crear Tablas
                //tabla para actualizar el nuevo stock (agregar productos recepcionados)
                DataTable DtActuStockLocal = new DataTable();
                DtActuStockLocal.TableName = "StockAlmacen";
                DtActuStockLocal.Columns.Add("NumRequerimiento", typeof(string));
                DtActuStockLocal.Columns.Add("AlmacenID", typeof(string));
                DtActuStockLocal.Columns.Add("ProductoID", typeof(string));
                DtActuStockLocal.Columns.Add("StockAdicion", typeof(decimal));
                #endregion

                //actualizar datos del requerimiento
                CL_Requerimientos ObjCL_Requerimientos = new CL_Requerimientos();
                CL_GuiaRemision   ObjCL_GuiaRemision   = new CL_GuiaRemision();

                foreach (DataRow Row2 in DtDetalle.Rows)
                {
                    #region Actualizar Estado Requerimientos
                    string  NumRequerimiento;
                    decimal CantidadTransito;
                    string  ProductoID;


                    NumRequerimiento = Row2["NumRequerimiento"].ToString();
                    ProductoID       = Row2["ProductoID"].ToString();
                    CantidadTransito = Convert.ToDecimal(Row2["CantidadEnviada"]);

                    bool Valor;

                    Valor = ObjCL_Requerimientos.UpdateDetalleRequerimientoAnulado(NumRequerimiento, CantidadTransito, ProductoID, AppSettings.UserID, AppSettings.SedeID);

                    if (Valor == false)
                    {
                        MessageBox.Show("ocurrio un error al intentar actualizar el requerimiento: \r\nNumRequerimiento: " + NumRequerimiento + "ProductoID: " + ProductoID + "\r\nCantidadTransito: " + CantidadTransito, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    Valor = ObjCL_GuiaRemision.UpdateGuiaRemisionEstado(TxtGuia.Text, 10, "A", AppSettings.UserID, AppSettings.SedeID);
                    #endregion

                    #region llenar tabla para actualizar el stock local
                    DataRow DrR = DtActuStockLocal.NewRow();
                    DrR["NumRequerimiento"] = Row2["NumRequerimiento"];
                    DrR["AlmacenID"]        = AppSettings.EmpresaID + AppSettings.SedeID + "000";
                    DrR["ProductoID"]       = Row2["ProductoID"];
                    DrR["StockAdicion"]     = Row2["CantidadEnviada"];
                    DtActuStockLocal.Rows.Add(DrR);
                    #endregion
                }

                #region agrupar para actualizar el stock local
                //Agrupar los productos apra almacenarlos
                DataTable DtProducto        = new DataTable();
                DataTable DtActuStockLocal2 = new DataTable();
                DtActuStockLocal2.TableName = "StockAlmacen";
                DtActuStockLocal2.Columns.Add("NumRequerimiento", typeof(string));
                DtActuStockLocal2.Columns.Add("AlmacenID", typeof(string));
                DtActuStockLocal2.Columns.Add("ProductoID", typeof(string));
                DtActuStockLocal2.Columns.Add("StockAdicion", typeof(decimal));
                DtProducto = new BaseFunctions().SelectDistinct(DtActuStockLocal, "ProductoID", "AlmacenID");
                foreach (DataRow RowP in DtProducto.Rows)
                {
                    DataView Dv = new DataView(DtActuStockLocal);
                    Dv.RowFilter = "ProductoID = '" + RowP["ProductoID"] + "' and AlmacenID = '" + RowP["AlmacenID"] + "'";
                    decimal Suma             = 0;
                    string  NumRequerimiento = "";
                    foreach (DataRowView Drv in Dv) //sumar las cantidades por producto
                    {
                        Suma            += Convert.ToDecimal(Drv["StockAdicion"]);
                        NumRequerimiento = Drv["NumRequerimiento"].ToString();
                    }
                    DataRow DrR = DtActuStockLocal2.NewRow();
                    DrR["NumRequerimiento"] = NumRequerimiento;
                    DrR["AlmacenID"]        = RowP["AlmacenID"];
                    DrR["ProductoID"]       = RowP["ProductoID"];
                    DrR["StockAdicion"]     = Suma;
                    DtActuStockLocal2.Rows.Add(DrR);
                }

                #endregion
                #region Actualizar el stock
                CL_Almacen ObjCL_Almacen = new CL_Almacen();

                foreach (DataRow R in DtActuStockLocal2.Rows)
                {
                    ObjCL_Almacen.UpdateStockAdidion(R["AlmacenID"].ToString(), R["ProductoID"].ToString(), Convert.ToDecimal(R["StockAdicion"]), R["NumRequerimiento"].ToString(), "R");
                }
                #endregion
            }

            MessageBox.Show("Se termino de anular la guía", "Guia remitente", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
Beispiel #5
0
        private void CrearHojaDespacho()
        {
            //obtener el distinct de las facturas para crear guias de remitente y de transportista
            DtFacturas = new DataTable();
            DtFacturas = new BaseFunctions().SelectDistinct(DetallesRequerimientos, "Factura");

            //calcular el total del peso enviado
            for (int i = 0; i < this.TdgDetalleHojaDespacho.Splits[0].Rows.Count; i++)
            {
                if (this.TdgDetalleHojaDespacho.Columns[2].CellValue(i) != DBNull.Value)
                {
                    PesoTotal += Convert.ToInt32(this.TdgDetalleHojaDespacho.Columns[10].CellValue(i));
                }
            }

            #region crear tablas
            //Insertar Hoja de despacho
            E_HojaDespacho ObjHojaDespacho = new E_HojaDespacho();
            ObjHojaDespacho.EmpresaID         = AppSettings.EmpresaID;
            ObjHojaDespacho.EmpresaTransporte = EmpresaTransporte;
            ObjHojaDespacho.NombreChofer      = NomTransportista;
            ObjHojaDespacho.placa             = TxtPlaca.Text;
            ObjHojaDespacho.Carrosa           = TxtCarrosa.Text;
            ObjHojaDespacho.FechaLlegada      = Convert.ToDateTime(DeFechaLlegada.Value);
            ObjHojaDespacho.FechaSalida       = Convert.ToDateTime(DeFechaSalida.Value);
            ObjHojaDespacho.NumJabas          = 0;
            ObjHojaDespacho.PesoTotal         = PesoTotal;
            ObjHojaDespacho.PesoNeto          = 0;
            ObjHojaDespacho.TotalAnimales     = 0;
            ObjHojaDespacho.TaraTotal         = 0;
            ObjHojaDespacho.UsuarioID         = AppSettings.UserID;

            NumHojaDespacho = new CL_HojaDespacho().InsertHojaDespacho(ObjHojaDespacho, AppSettings.SedeID);

            //Tabla para insertar el detalle de la hoja de despacho
            DetalleHojaDespacho           = new DataTable();
            DetalleHojaDespacho.TableName = "DetalleHojaDespacho";
            DetalleHojaDespacho.Columns.Add("ProductoID", typeof(string));
            DetalleHojaDespacho.Columns.Add("NumHojaDespacho", typeof(string));
            DetalleHojaDespacho.Columns.Add("NumGuiaRemision", typeof(string));
            DetalleHojaDespacho.Columns.Add("NumRequerimiento", typeof(string));
            DetalleHojaDespacho.Columns.Add("NroFactura", typeof(string));
            DetalleHojaDespacho.Columns.Add("TotalPeso", typeof(decimal));
            DetalleHojaDespacho.Columns.Add("Motivo", typeof(string));
            DetalleHojaDespacho.Columns.Add("NumGuiaTransportista", typeof(string));
            DetalleHojaDespacho.Columns.Add("Bultos", typeof(string));
            DetalleHojaDespacho.Columns.Add("IDProveedor", typeof(int));

            //Tabla para Mostrar Hoja de despacho
            DetalleHojaDespacho2           = new DataTable();
            DetalleHojaDespacho2.TableName = "DetalleHojaDespacho2";
            DetalleHojaDespacho2.Columns.Add("Proveedor", typeof(string));
            DetalleHojaDespacho2.Columns.Add("NroFactura", typeof(string));
            DetalleHojaDespacho2.Columns.Add("NumGuiaRemision", typeof(string));
            DetalleHojaDespacho2.Columns.Add("NumGuiaTransportista", typeof(string));
            DetalleHojaDespacho2.Columns.Add("Producto", typeof(string));
            DetalleHojaDespacho2.Columns.Add("TotalPeso", typeof(decimal));
            DetalleHojaDespacho2.Columns.Add("Bultos", typeof(string));
            #endregion

            foreach (DataRow Row in DtFacturas.Rows)
            {
                NroFactura = Row["Factura"].ToString();

                //filtrar tabla para obtener los datos relacionados a la factura y asi crear las guias de remision
                DataView DvDetallesRequerimientos = new DataView(DetallesRequerimientos);
                DvDetallesRequerimientos.RowFilter = "Factura = '" + NroFactura + "'";
                DataTable DtRequerimientos;
                DtRequerimientos = DvDetallesRequerimientos.ToTable();
                DtRequerimientos.DefaultView.Sort = "Producto";


                try
                {
                    #region crear tablas
                    //detalles de guia de remision
                    DetalleGuiaRemision           = new DataTable();
                    DetalleGuiaRemision.TableName = "DetalleGuiaRemision";
                    DetalleGuiaRemision.Columns.Add("NumGuiaRemision", typeof(string));
                    DetalleGuiaRemision.Columns.Add("ProductoID", typeof(string));
                    DetalleGuiaRemision.Columns.Add("NumRequerimiento", typeof(string));
                    DetalleGuiaRemision.Columns.Add("PesoNeto", typeof(decimal));
                    DetalleGuiaRemision.Columns.Add("PesoTara", typeof(decimal));
                    DetalleGuiaRemision.Columns.Add("CantidadEnviada", typeof(decimal));
                    DetalleGuiaRemision.Columns.Add("CantidadRecibida", typeof(decimal));
                    DetalleGuiaRemision.Columns.Add("EstadoID", typeof(int));

                    //detalles de guia de transporte
                    DetalleGuiaTransporte           = new DataTable();
                    DetalleGuiaTransporte.TableName = "DetalleGuiaTransportista";
                    DetalleGuiaTransporte.Columns.Add("NumGuiaTransportista", typeof(string));
                    DetalleGuiaTransporte.Columns.Add("ProductoID", typeof(string));
                    DetalleGuiaTransporte.Columns.Add("NumRequerimiento", typeof(string));
                    DetalleGuiaTransporte.Columns.Add("PesoNeto", typeof(decimal));
                    DetalleGuiaTransporte.Columns.Add("PesoTara", typeof(decimal));
                    DetalleGuiaTransporte.Columns.Add("CantidadEnviada", typeof(decimal));

                    //tabla para actualizar el estado del requerimiento
                    DataTable DtActuEstadoReq = new DataTable();
                    DtActuEstadoReq.TableName = "DetalleRequerimiento";
                    DtActuEstadoReq.Columns.Add("NumRequerimiento", typeof(string));
                    DtActuEstadoReq.Columns.Add("CantidadTransito", typeof(decimal));
                    DtActuEstadoReq.Columns.Add("ProductoID", typeof(string));
                    DtActuEstadoReq.Columns.Add("EstadoID", typeof(int));
                    #endregion

                    NumGuiaRemision = CrearGuiaRemitente();

                    //se crea guia de transportista si solo si el camion no pertenece a la empresa de destino
                    if ((AppSettings.EmpresaID != CamionEmpresaID) && CamionEmpresaID != "EX")
                    {
                        NumGuiaTransportista = CrearGuiaTransporte();
                    }
                    else
                    {
                        NumGuiaTransportista = ""; //no necesita guia de transporte
                    }
                    int Cantidad = 0;              //contador que indicara si la cantidad de productos no sean mayor de 12 (lo que puede contener la guia)
                    foreach (DataRow Row2 in DtRequerimientos.Rows)
                    {
                        Cantidad++;

                        if (Cantidad > 12)
                        {
                            Cantidad = 1;
                            //se crea guia de transportista si solo si el camion no pertenece a la empresa de destino
                            if ((AppSettings.EmpresaID != CamionEmpresaID) && CamionEmpresaID != "EX")
                            {
                                NumGuiaTransportista = CrearGuiaTransporte();
                            }
                            else
                            {
                                NumGuiaTransportista = ""; //no necesita guia de transporte
                            }
                            NumGuiaRemision = CrearGuiaRemitente();
                        }

                        if (Row2["Anular"] == DBNull.Value || Row2["Anular"].ToString() == "False")
                        {
                            //analizar el stock y si se logro la actualizacion crear las guias
                            bool Actualizo = false;                          //'9-' indica que es guia remitente
                            //es para kardex
                            if (Row2["TipoRequerimiento"].ToString() == "C") //en compras baja el stock local y el disponible
                            {
                                Actualizo = new CL_Almacen().UpdateStockSustraccion(Row2["AlmacenID"].ToString(), Convert.ToString(Row2["SProductoID"]), Convert.ToDecimal(Row2["CantidadDespachada"]), "D", AppSettings.EmpresaID + CboSedeDestino.SelectedValue.ToString() + Row2["AlmacenID"].ToString().Substring(7), 2, "09", NumGuiaRemision.Substring(2, 3), Convert.ToInt32(NumGuiaRemision.Substring(6)), "11", AppSettings.UserID);
                            }
                            else if (Row2["TipoRequerimiento"].ToString() == "T")//en transferencia solo baja el stock local
                            {
                                Actualizo = new CL_Almacen().UpdateStockSustraccion(Row2["AlmacenID"].ToString(), Convert.ToString(Row2["SProductoID"]), Convert.ToDecimal(Row2["CantidadDespachada"]), "S", AppSettings.EmpresaID + CboSedeDestino.SelectedValue.ToString() + Row2["AlmacenID"].ToString().Substring(7), 2, "09", NumGuiaRemision.Substring(2, 3), Convert.ToInt32(NumGuiaRemision.Substring(6)), "11", AppSettings.UserID);
                            }

                            if (Actualizo == true)
                            {
                                //para detalle guia remision
                                DataRow RowGR = DetalleGuiaRemision.NewRow();
                                RowGR["NumGuiaRemision"]  = NumGuiaRemision;
                                RowGR["ProductoID"]       = Row2["SProductoID"];
                                RowGR["NumRequerimiento"] = Row2["NumRequerimiento"];
                                RowGR["PesoNeto"]         = Row2["PesoTotal"];
                                RowGR["PesoTara"]         = 0;
                                RowGR["CantidadEnviada"]  = Row2["CantidadDespachada"];
                                RowGR["CantidadRecibida"] = DBNull.Value;
                                RowGR["EstadoID"]         = 2;
                                DetalleGuiaRemision.Rows.Add(RowGR);

                                //para detalle guia transporte
                                if (NumGuiaTransportista != "")
                                {
                                    DataRow RowGT = DetalleGuiaTransporte.NewRow();
                                    RowGT["NumGuiaTransportista"] = NumGuiaTransportista;
                                    RowGT["ProductoID"]           = Row2["SProductoID"];
                                    RowGT["NumRequerimiento"]     = Row2["NumRequerimiento"];
                                    RowGT["PesoNeto"]             = Row2["PesoTotal"];
                                    RowGT["PesoTara"]             = 0;
                                    RowGT["CantidadEnviada"]      = Row2["CantidadDespachada"];
                                    DetalleGuiaTransporte.Rows.Add(RowGT);
                                }
                                //para estado requerimiento
                                DataRow RowD2 = DtActuEstadoReq.NewRow();
                                RowD2["ProductoID"]       = Row2["ProductoID"];
                                RowD2["NumRequerimiento"] = Row2["NumRequerimiento"];

                                //identificar el estado actual del requerimiento
                                if (AppSettings.SedeID == "001PU")
                                {
                                    if (Convert.ToDecimal(Row2["CantidadRecibida"]) + Convert.ToDecimal(Row2["CantidadDespachada"]) == Convert.ToDecimal(Row2["CantidadSolicitada"]))
                                    {
                                        //transito DESTINO total
                                        RowD2["EstadoID"] = 9;
                                    }
                                    else if (Convert.ToDecimal(Row2["CantidadRecibida"]) + Convert.ToDecimal(Row2["CantidadDespachada"]) < Convert.ToDecimal(Row2["CantidadSolicitada"]))
                                    {
                                        //transito DESTINO parcial
                                        RowD2["EstadoID"] = 8;
                                    }

                                    /*siempre va a estar en transito porque la
                                     * transferencia es entre almacenes y no pasa por industria*/
                                    if (RBTransferencia.Checked == true)
                                    {
                                        RowD2["CantidadTransito"] = Row2["CantidadDespachada"];
                                    }

                                    /*en este caso sera "0" porque las compras vienen de lima*/
                                    if (RbCompras.Checked == true)
                                    {
                                        RowD2["CantidadTransito"] = 0;
                                    }
                                }
                                else
                                {
                                    if (Convert.ToDecimal(Row2["CantidadRecibida"]) + Convert.ToDecimal(Row2["CantidadTransito"]) + Convert.ToDecimal(Row2["CantidadDespachada"]) == Convert.ToDecimal(Row2["CantidadSolicitada"]))
                                    {
                                        //transito total
                                        RowD2["EstadoID"] = 2;
                                    }
                                    else if (Convert.ToDecimal(Row2["CantidadRecibida"]) + Convert.ToDecimal(Row2["CantidadTransito"]) + Convert.ToDecimal(Row2["CantidadDespachada"]) < Convert.ToDecimal(Row2["CantidadSolicitada"]))
                                    {
                                        //transito parcial
                                        RowD2["EstadoID"] = 6;
                                    }
                                    RowD2["CantidadTransito"] = Row2["CantidadDespachada"];
                                }
                                DtActuEstadoReq.Rows.Add(RowD2);

                                //para detalle hoja despacho
                                DataRow RowHD = DetalleHojaDespacho.NewRow();
                                RowHD["ProductoID"]           = Row2["SProductoID"];
                                RowHD["NumHojaDespacho"]      = NumHojaDespacho;
                                RowHD["NumGuiaRemision"]      = NumGuiaRemision;
                                RowHD["NumRequerimiento"]     = Row2["NumRequerimiento"];
                                RowHD["NroFactura"]           = Row2["Factura"];
                                RowHD["TotalPeso"]            = Row2["PesoTotal"];
                                RowHD["Motivo"]               = Row2["Motivo"];
                                RowHD["NumGuiaTransportista"] = NumGuiaTransportista;
                                RowHD["Bultos"]               = Row2["Bultos"];
                                RowHD["IDProveedor"]          = Row2["IDProveedor"];
                                DetalleHojaDespacho.Rows.Add(RowHD);

                                //para detalle hoja despacho para presentar
                                DataRow RowHD2 = DetalleHojaDespacho2.NewRow();
                                RowHD2["Proveedor"]            = Row2["Proveedor"];
                                RowHD2["NroFactura"]           = Row2["Factura"];
                                RowHD2["NumGuiaRemision"]      = NumGuiaRemision;
                                RowHD2["NumGuiaTransportista"] = NumGuiaTransportista;
                                RowHD2["Producto"]             = Row2["Producto"];
                                RowHD2["TotalPeso"]            = Row2["PesoTotal"];
                                RowHD2["Bultos"] = Row2["Bultos"];
                                DetalleHojaDespacho2.Rows.Add(RowHD2);
                            }
                            else
                            {
                                MessageBox.Show("No existe Stock suficiente en el almacen " + Row2["AlmacenID"].ToString() + " del producto \r\n" + Row2["Producto"].ToString() + ".", "Stock Almacen", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                            }
                        }
                    }
                    #region Actualizar con Xml
                    //insertar detalles guia remision
                    if (DetalleGuiaRemision.Rows.Count > 0)
                    {
                        string xml = new BaseFunctions().GetXML(DetalleGuiaRemision).Replace("NewDataSet", "DocumentElement");
                        bool   Valor;
                        Valor = new CL_GuiaRemision().InsertXMLDetalleGuiaRemision(xml);
                        if (Valor == false)
                        {
                            MessageBox.Show("Ocurrio un error al intentar guardar el detalle de la Guía de Remisión", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }

                    //insertar detalle guia de transporte
                    if (DetalleGuiaTransporte.Rows.Count > 0)
                    {
                        string xml = new BaseFunctions().GetXML(DetalleGuiaTransporte).Replace("NewDataSet", "DocumentElement");
                        bool   Valor;
                        Valor = new CL_GuiaTransportista().InsertXMLDetalleGuiaTransporte(xml);
                        if (Valor == false)
                        {
                            MessageBox.Show("Ocurrio un error al intentar guardar el detalle de la Guía de Transporte", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }

                    //actualizar estado de los requerimientos
                    if (DtActuEstadoReq.Rows.Count > 0)
                    {
                        string xml = new BaseFunctions().GetXML(DtActuEstadoReq).Replace("NewDataSet", "DocumentElement");
                        bool   Valor;
                        Valor = new CL_Requerimientos().UpdateXMLDetalleRequerimientoEstado(xml, "E", AppSettings.UserID, AppSettings.SedeID);
                        if (Valor == false)
                        {
                            MessageBox.Show("Ocurrio un error al intentar actualizar el estado de los requerimientos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }

                    MessageBox.Show("Se guardo correctamente los datos", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    #endregion
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }//fin del foreach de las facturas

            //insertar los detalles de hoja de despacho

            if (DetalleHojaDespacho.Rows.Count > 0)
            {
                string xml = new BaseFunctions().GetXML(DetalleHojaDespacho).Replace("NewDataSet", "DocumentElement");
                bool   Valor;
                Valor = new CL_HojaDespacho().InsertXMLDetalleHojaDespacho(xml);
                if (Valor == false)
                {
                    MessageBox.Show("Ocurrio un error al intentar insertar los detalles de la hoja de despacho", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    TdgDetalleHoja.Visible = true;
                    TdgDetalleHoja.SetDataBinding(DetalleHojaDespacho2, "", true);
                }
            }
        }