Пример #1
0
        public bool GuardarRequerimiento(TipoMantenimiento tipoMantenimiento, Requerimiento entidadCab, List <VwRequerimientodet> entidadDetList)
        {
            using (var db = OrmLiteHelper.DbFactory.Open())
            {
                using (IDbTransaction trans = db.OpenTransaction(IsolationLevel.ReadCommitted))
                {
                    switch (tipoMantenimiento)
                    {
                    case TipoMantenimiento.Nuevo:
                        db.Save(entidadCab);
                        if (entidadCab.Idrequerimiento > 0)
                        {
                            var tipocp = db.SingleById <Tipocp>(entidadCab.Idtipocp);
                            if (tipocp.Numeracionauto)
                            {
                                db.Update <Tipocp>(new { Numerocorrelativocp = Convert.ToInt32(entidadCab.Numeroreq) + 1 }, p => p.Idtipocp == tipocp.Idtipocp);
                            }
                        }
                        break;

                    case TipoMantenimiento.Modificar:
                        db.Update(entidadCab);
                        break;
                    }

                    //int numeroItem = 1;
                    //foreach (var item in entidadDetList.Where(x=>x.DataEntityState != DataEntityState.Deleted))
                    //{
                    //    item.DataEntityState = DataEntityState.Modified;
                    //    item.Numeroitem = numeroItem;
                    //    numeroItem++;
                    //}

                    if (entidadCab.Idrequerimiento > 0)
                    {
                        foreach (var item in entidadDetList)
                        {
                            Requerimientodet requerimientodet = new Requerimientodet();

                            requerimientodet.Idrequerimientodet   = item.Idrequerimientodet;
                            requerimientodet.Idrequerimiento      = entidadCab.Idrequerimiento;
                            requerimientodet.Numeroitem           = item.Numeroitem;
                            requerimientodet.Idarticulo           = item.Idarticulo;
                            requerimientodet.Idimpuesto           = item.Idimpuesto;
                            requerimientodet.Idunidadmedida       = item.Idunidadmedida;
                            requerimientodet.Especificacion       = item.Especificacion;
                            requerimientodet.Cantidad             = item.Cantidad;
                            requerimientodet.Preciounitario       = item.Preciounitario;
                            requerimientodet.Importetotal         = item.Importetotal;
                            requerimientodet.Idcentrodecosto      = item.Idcentrodecosto;
                            requerimientodet.Cantidadinicial      = item.Cantidadinicial;
                            requerimientodet.Idtipoafectacionigv  = item.Idtipoafectacionigv;
                            requerimientodet.Porcentajepercepcion = item.Porcentajepercepcion;
                            requerimientodet.Aprobado             = item.Aprobado;
                            requerimientodet.Calcularitem         = item.Calcularitem;

                            requerimientodet.Createdby    = item.Createdby;
                            requerimientodet.Creationdate = item.Creationdate;
                            requerimientodet.Modifiedby   = item.Modifiedby;
                            requerimientodet.Lastmodified = item.Lastmodified;


                            //Nuevo
                            if (item.Idrequerimientodet == 0 && item.DataEntityState != DataEntityState.Deleted)
                            {
                                db.Save(requerimientodet);
                                item.Idrequerimientodet = requerimientodet.Idrequerimientodet;
                            }

                            //Modificar
                            if (item.Idrequerimientodet > 0 && item.DataEntityState == DataEntityState.Modified)
                            {
                                db.Update(requerimientodet);
                            }

                            //Eliminar
                            if (item.Idrequerimientodet > 0 && item.DataEntityState == DataEntityState.Deleted)
                            {
                                db.DeleteById <Requerimientodet>(item.Idrequerimientodet);
                            }
                        }

                        //Verificar si hubo cambios en el orden de items
                        int cntNoOrden   = 0;
                        int nItemInicial = 0;
                        foreach (var item in entidadDetList.Where(x => x.DataEntityState != DataEntityState.Deleted))
                        {
                            if (nItemInicial + 1 != item.Numeroitem)
                            {
                                cntNoOrden++;
                            }
                            nItemInicial = item.Numeroitem;
                        }
                        if (cntNoOrden > 0)
                        {
                            int numeroItem = 1;
                            //Reenumerar y actualizar solo el nro de item
                            foreach (var item in entidadDetList.Where(x => x.DataEntityState != DataEntityState.Deleted))
                            {
                                item.Numeroitem = numeroItem;
                                Requerimientodet requerimientodet = new Requerimientodet
                                {
                                    Numeroitem         = item.Numeroitem,
                                    Idrequerimientodet = item.Idrequerimientodet
                                };
                                db.Update <Requerimientodet>(new { requerimientodet.Numeroitem }, p => p.Idrequerimientodet == requerimientodet.Idrequerimientodet);
                                numeroItem++;
                            }
                        }
                    }
                    trans.Commit();
                    return(true);
                }
            }
        }
Пример #2
0
 public void UpdateRequerimientodet(Requerimientodet entity)
 {
     RequerimientodetDao.Update(entity);
 }
Пример #3
0
        private void btnActualizarEstado_Click(object sender, EventArgs e)
        {
            switch (Parametros.TipoConsultaReq)
            {
            case 0:     //Pendiente de aprobacion
                break;

            case 1:     //Req Aproados
                if (Service.RequerimientoTieneReferenciasOrdenDeCompra(VwRequerimientoSel.Idrequerimiento))
                {
                    XtraMessageBox.Show("Requerimiento ya tiene referencia en ordenes de compra.", "Atención",
                                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
                break;
            }
            if (gvConsulta.RowCount == 0)
            {
                XtraMessageBox.Show("No hay requerimientos pendientes de aprobación.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }


            if (gvDetalle.RowCount == 0)
            {
                XtraMessageBox.Show("El requerimiento no tiene items.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            int totalItemsSeleccionados = VwRequerimientodetList.Count(x => x.Aprobado);

            if (totalItemsSeleccionados == 0)
            {
                XtraMessageBox.Show("Debe seleccionar items a aprobar", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            var idEstadoSel = iIdestadoreq.EditValue;

            if (idEstadoSel == null)
            {
                XtraMessageBox.Show("Seleccione el estado", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }


            switch (Parametros.IdEstadoReq)
            {
            case 0:     // Pendientes de Aprobacion

                if (Service.RequerimientoAprobado(VwRequerimientoSel.Idrequerimiento))
                {
                    XtraMessageBox.Show("Requerimiento ya esta aprobado.", "Atención", MessageBoxButtons.OK,
                                        MessageBoxIcon.Exclamation);

                    CargarRequerimientos();
                    return;
                }
                break;

            case 1:     // Aprobados

                break;
            }

            if (DialogResult.Yes == XtraMessageBox.Show("Desea actualizar el estado del requerimiento",
                                                        "Atención", MessageBoxButtons.YesNo,
                                                        MessageBoxIcon.Question, MessageBoxDefaultButton.Button1))
            {
                Requerimiento requerimiento = Service.GetRequerimiento(x => x.Idrequerimiento == VwRequerimientoSel.Idrequerimiento);

                if (requerimiento != null)
                {
                    int idRequerimientoSel = requerimiento.Idrequerimiento;
                    requerimiento.Totalbruto             = (decimal)rTotalbruto.EditValue;
                    requerimiento.Totalgravado           = (decimal)rTotalgravado.EditValue;
                    requerimiento.Totalinafecto          = (decimal)rTotalinafecto.EditValue;
                    requerimiento.Totalexonerado         = (decimal)rtotalexonerado.EditValue;
                    requerimiento.Totalimpuesto          = (decimal)rTotalimpuesto.EditValue;
                    requerimiento.Importetotal           = (decimal)rImportetotal.EditValue;
                    requerimiento.Porcentajepercepcion   = (decimal)rPorcentajepercepcion.EditValue;
                    requerimiento.Importetotalpercepcion = (decimal)rImportetotalpercepcion.EditValue;
                    requerimiento.Totaldocumento         = (decimal)rTotaldocumento.EditValue;

                    requerimiento.Idestadoreq = (int)iIdestadoreq.EditValue;

                    //IdEstadoreq: 3 (Aprobado)

                    requerimiento.Fechaaprobacion = (int)idEstadoSel == 3 ? (DateTime?)DateTime.Now : null;

                    requerimiento.Idempleadoaprueba     = SessionApp.UsuarioSel.Idusuario;
                    requerimiento.Observacionaprobacion = iObservacionReq.Text.Trim();

                    Service.UpdateRequerimiento(requerimiento);

                    foreach (var item in VwRequerimientodetList)
                    {
                        ////Eliminar los desaprobado
                        //if (!item.Itemseleccionado)
                        //{
                        //    Service.DeleteRequerimientodet(item.Idrequerimientodet);
                        //}

                        //Si se modifico la cantidad
                        if (item.DataEntityState == DataEntityState.Modified && item.Itemseleccionado)
                        {
                            Requerimientodet itemRedDet = Service.GetRequerimientodet(item.Idrequerimientodet);
                            itemRedDet.Cantidad     = item.Cantidad;
                            itemRedDet.Importetotal = item.Importetotal;
                            itemRedDet.Aprobado     = item.Aprobado;
                            Service.UpdateRequerimientodet(itemRedDet);
                        }
                    }

                    if ((int)idEstadoSel == 3 || (int)idEstadoSel == 5) //Cuando este aprobado o desaprobado
                    {
                        Tipocp tipocpReq = Service.GetTipocp(x => x.Idtipocp == requerimiento.Idtipocp);
                        if (tipocpReq != null)
                        {
                            //Insertar informacion de aprobacion de documento
                            Documentoaprobacion documentoaprobacionReq = new Documentoaprobacion
                            {
                                Idtipodocmov    = tipocpReq.Idtipodocmov,
                                Iddocumentomov  = requerimiento.Idrequerimiento,
                                Empleadoaprueba = SessionApp.EmpleadoSel.Idempleado,
                                Fechaaprobacion = DateTime.Now,
                                Aprobado        = true,
                                Comentario      = iObservacionReq.Text.Trim()
                            };
                            int iddocumentoaprobacion = Service.SaveDocumentoaprobacion(documentoaprobacionReq);
                            if (iddocumentoaprobacion > 0)
                            {
                            }
                        }
                    }


                    //Si se cambia a registrado o desaprobado eliminar registros de documentoaprobacion
                    if ((int)idEstadoSel == 1 || (int)idEstadoSel == 4 && idRequerimientoSel > 0)
                    {
                        //3:REQUERIMIENTO
                        Service.EliminarReferenciasDocumentoAprobacion(3, idRequerimientoSel);
                    }
                    CargarRequerimientos();
                }
            }
        }
Пример #4
0
 public int SaveRequerimientodet(Requerimientodet entity)
 {
     return(RequerimientodetDao.Save(entity));
 }